cow image
[fc2020] / estea-fosscomm2020.tex
1 \documentclass[usenames,dvipsnames]{beamer}
2 \usepackage[utf8]{inputenc}
3 \usepackage{wasysym}
4 \usepackage[font=small,skip=-1pt]{caption}
5 \usepackage{xcolor}
6 \usepackage{color, colortbl}
7 \usepackage{caption}
8 \usepackage{listings}
9 \usepackage{graphicx}
10 \usepackage{hyperref}
11 \usepackage{comment}
12 \usepackage{textpos}
13 \usepackage{tgpagella}
14 \usepackage[utf8]{inputenc}
15 \usepackage{fontspec}
16 \usepackage{tabularx, array, booktabs}
17 \usepackage{cite}
18 \usepackage{verbatim}
19 \usepackage{comment}
20 \usepackage{adjustbox}
21
22 \newcommand\topalign[1]{%
23   \setbox0\hbox{#1}%
24   \raisebox{\dimexpr-\ht0+\dp0\relax}{\usebox0}}
25
26 \definecolor{blond}{rgb}{0.98, 0.94, 0.75}
27 \definecolor{beige}{rgb}{0.96, 0.96, 0.86}
28 \definecolor{mGreen}{rgb}{0,0.6,0}
29 \definecolor{mGray}{rgb}{0.5,0.5,0.5}
30 \definecolor{mPurple}{rgb}{0.58,0,0.82}
31 \definecolor{bgcolor}{rgb}{0.8,0.8,0.8}
32 \definecolor{afblue}{rgb}{0.46, 0.64, 0.76}
33 \definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
34 \definecolor{paleaqua}{rgb}{0.74, 0.83, 0.9}
35 \definecolor{platinum}{rgb}{0.9, 0.89, 0.89}
36 \definecolor{whitesmoke}{rgb}{0.96, 0.96, 0.96}
37 \definecolor{carolinablue}{rgb}{0.6, 0.73, 0.89}
38 \definecolor{amber}{rgb}{1.0, 0.75, 0.0}
39 \definecolor{deepjunglegreen}{rgb}{0.0, 0.29, 0.29}
40 \definecolor{mediumred-violet}{rgb}{0.73, 0.2, 0.52}
41 \definecolor{babypink}{rgb}{0.96, 0.76, 0.76}
42 \definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
43 \definecolor{bananayellow}{rgb}{1.0, 0.88, 0.21}
44 \definecolor{bananamania}{rgb}{0.98, 0.91, 0.81}
45
46 \lstdefinestyle{CStyle}{
47         language=C++,                % choose the language of the code
48 %       basicstyle=\footnotesize,       % the size of the fonts that are used for the code
49         basicstyle=\tt\color{afblue},
50     breakatwhitespace=false,
51     breaklines=true,
52         backgroundcolor=\color{bgcolor},  % choose the background color. You must add \usepackage{color}
53         showspaces=false,               % show spaces adding particular underscores
54         showstringspaces=false,         % underline spaces within strings
55         showtabs=false,                 % show tabs within strings adding particular underscores
56         frame=single,           % adds a frame around the code
57         tabsize=2,          % sets default tabsize to 2 spaces
58         captionpos=b,           % sets the caption-position to bottom
59         breaklines=true,        % sets automatic line breaking
60         breakatwhitespace=false,    % sets if automatic breaks should only happen at whitespace
61     commentstyle=\color{mGreen},
62     keywordstyle=\color{magenta},
63     stringstyle=\color{mPurple},
64         rulesepcolor=\color{gray},
65     rulecolor=\color{black},
66 }
67
68 \setmainfont{Noto Serif} % substitute with any font that exists on your system
69 \setsansfont{Noto Sans} % substitute with any font that exists on your system
70 \setmonofont{Noto Sans Mono} % substitute with any font that exists on your system
71
72 \usetheme{Warsaw}
73 \useoutertheme{infolines}
74 \usecolortheme{crane}
75
76 \captionsetup[figure]{labelformat=empty}
77
78 \addtobeamertemplate{headline}{}{\vskip2pt}
79 \addtobeamertemplate{headline}{}{%
80         \begin{textblock*}{5mm}(.9\textwidth,-0.6cm)
81         \includegraphics[height=0.67cm]{data/igalia-logo.png}
82 \end{textblock*}}
83
84 \definecolor{links}{rgb}{0.1, 0.3, 0.6}
85 \hypersetup{colorlinks,linkcolor=,urlcolor=links}
86
87 \pgfdeclareimage[height=\paperheight]{igaliabglight}{data/igalia_bg_light.eps}
88 \pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}
89
90 %\setbeamertemplate{title page}{
91 %        \begin{picture}(-90, 180)
92 %                       \put(-200, -74){%
93 %                \pgfuseimage{igaliabg}
94 %            }
95 %
96 %            \put(55,19){%
97 %                               \begin{minipage}[b][36mm][t]{240mm}
98 %                    \usebeamerfont{title}{\inserttitle\par}
99 %                    \usebeamerfont{author}{\insertauthor\par}
100 %                    \usebeamerfont{title}{\insertinstitute\par}
101 %                \end{minipage}
102 %            }
103 %               \end{picture}
104 %}
105
106 \setbeamertemplate{navigation symbols}{}
107 \setbeamertemplate{title page}{
108         \begin{picture}(0,0)
109             \put(-30,-164){%
110                 \pgfuseimage{igaliabg}
111             }
112
113             \put(0,-110.7){%
114                 \begin{minipage}[b][38mm][t]{220mm}
115                     \usebeamerfont{title}{\inserttitle\par}
116                                         \vspace{0.1cm}
117                     \usebeamerfont{author}{\insertauthor\par}
118                 \end{minipage}
119             }
120
121                         \put(240, -138){
122                                 \usebeamerfont{date}{\small{\textbf{\insertdate}}\par}
123                                 }
124                 \end{picture}
125 }
126
127 \setbeamertemplate{itemize items}[triangle]
128 \setbeamertemplate{itemize subitem}[circle]
129 \setbeamerfont{frametitle}{size=\small}
130
131 \setbeamertemplate{blocks}[default]
132 \setbeamercolor{block title}{fg=amber,bg=black}
133
134
135 \title{\textbf{OpenGL and Vulkan Interoperability}}
136 \author[Eleni Maria Stea <estea@igalia.com>]{\small{Ελένη Μαρία Στέα
137 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
138 \date{FOSSCOMM 2020}
139
140 \AtBeginSection[]
141 {
142   \begin{frame}
143     \frametitle{Outline}
144         \tableofcontents[currentsection]
145   \end{frame}
146 }
147
148 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
149 \begin{document}
150 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
151
152 \begin{frame}[plain]
153 \titlepage
154 \end{frame}
155
156 \begin{frame}
157         \frametitle{Outline}
158         \tableofcontents
159 \end{frame}
160
161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162
163 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
164 \section[Εισαγωγή]{OpenGL extensions για interoperability}
165 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
166
167 \begin{frame}[fragile,c]
168         \frametitle{Συνδυαστική χρήση Vulkan και OpenGL}
169         \begin{center}
170                 \vspace{0.5cm}
171                 \small{
172                         \textbf{\color{coolblack}{Σε κάποιες εφαρμογές βολεύει να συνδυάσουμε τα δύο
173                         APIs και να εκμεταλλευτούμε τα πλεονεκτήματα του καθενός!}}
174                 }
175                 \vspace{0.5cm}
176                 \begin{table}
177                         \begin{tabularx}{\textwidth}{c c}
178                                 \adjustbox{valign=t,  margin=1ex,
179                                 padding=1ex}{\includegraphics[scale=.07]{data/vulkan.png}} &
180                                 \adjustbox{valign=t, margin=1ex,
181                                 padding=1ex}{\includegraphics[scale=.07]{data/opengl.png}}\\
182                         \end{tabularx}
183                 \end{table}
184         \includegraphics[scale=.1]{data/cows.png}\\
185                 \vspace{0.3cm}
186                 \tiny{\textbf{\color{coolblack}{Παράδειγμα:}} σε ένα VR compositor μπορεί να
187                 χρησιμοποιηθεί
188                 Vulkan για να φτιαχτούν και να εμφανιστούν οι εικόνες που θα βλέπει
189                 το κάθε μάτι, αλλά το περιεχόμενό τους να ζωγραφίζεται από OpenGL
190                 processes.}
191                 \vspace{0.5cm}
192         \end{center}
193 \end{frame}
194
195 \begin{frame}[fragile,c]
196         \frametitle{Η έννοια της διαλειτουργικότητας (Interoperability)}
197
198         \begin{center}
199         \textbf{\color{coolblack}{INTEROPERABILITY}}
200         \vspace{1cm}
201
202                 \scriptsize{
203         \begin{tabularx}{\textwidth}{X}
204                 \rowcolor{coolblack}
205                 {\begin{tabularx}{\linewidth}{X}
206                 \rowcolor{coolblack}
207                 \\
208                 \multicolumn{1}{c}{
209                         \color{paleaqua}{Με τα EXT\_external\_objects(\_fd) μπορούμε:}
210                 }\\
211                 \rowcolor{coolblack}
212                 \\
213                 \end{tabularx}}\\
214                 \rowcolor{platinum}
215                 \\
216                 \rowcolor{platinum}
217                 · \color{coolblack}{Να \textbf{δεσμεύουμε πόρους} (textures,
218                 buffers) \textbf{μια φορά} από το Vulkan και να έχουμε πρόσβαση σε
219                 αυτούς και από τα δύο APIs οσεσδήποτε φορές.}
220                 
221                 \\
222                 \rowcolor{platinum}
223                 · \color{coolblack}{Να \textbf{συγχρονίζουμε} την
224                 πρόσβαση του κάθε API στους κοινόχρηστους πόρους.}\\
225                 \rowcolor{platinum}
226                 \\
227         \end{tabularx}
228                 }
229         \end{center}
230 \end{frame}
231
232 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
233
234 \begin{frame}[fragile]
235         \frametitle{OpenGL extensions για διαλειτουργικότητα στο Linux}
236
237         \center{\textbf{\color{coolblack}{OpenGL Extensions (Linux)}}}
238         \vspace{0.2cm}
239
240         \setbeamertemplate{itemize/enumerate body begin}{\footnotesize}
241         \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
242         \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny}
243
244         \setbeamertemplate{itemize items}[triangle]
245         \setbeamertemplate{blocks}[rounded][shadow]
246
247         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects\_fd
248                 (EXT\_memory\_object\_fd, EXT\_semaphore\_fd)}:}}
249                 \begin{itemize}
250                         \item Eπιτρέπουν σε ένα OpenGL πρόγραμμα να αποκτήσει πρόσβαση σε
251                                 μνήμη που έχει
252                                 δεσμευθεί από το Vulkan (είτε για objects είτε για semaphores)
253                                 μέσω ενός POSIX file descriptor handle.
254                 \end{itemize}
255         \end{block}
256
257         \vspace{0.2cm}
258
259         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects
260                 (EXT\_memory\_object, EXT\_semaphore)}:}}
261                 \begin{itemize}
262                         \item Eπιτρέπουν στα OpenGL προγράμματα να φτιάχνουν
263                                 OpenGL αντικείμενα (textures,
264                                 buffers και semaphores) από την εξωτερική Vulkan μνήμη, και
265                                 να συγχρονίζουν \textbf{από κοινού} την πρόσβαση σ αυτά.
266                         \item {Eπεκτείνουν τα OpenGL calls που χρησιμοποιούνται
267                                 για να θέσουν ή να επιστρέψουν ιδιότητες εικόνων και buffers
268                                 με περισσότερες παραμέτρους (πχ texture tiling mode, drivers
269                                 compatibility)}
270                 \end{itemize}
271         \end{block}
272 \end{frame}
273
274 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
275 \section[Interoperability σε Piglit και Mesa 3D]{Προσθήκες στο Mesa και το Piglit}
276 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
277 \begin{frame}
278         \frametitle{Igalia's contributions}
279
280         \setbeamertemplate{blocks}[rounded]
281         \center{
282                 \normalsize{\textbf{\color{coolblack}{Συνοπτικά η δουλειά μας}}}
283                 }
284
285         \vspace{0.5cm}
286
287         \begin{block}{Mesa}
288                 \footnotesize{
289                         Στην Igalia προσπαθήσαμε να υποστηρίξουμε αυτά τα extensions σε
290                         διάφορους {\color{deepjunglegreen}\textbf{Mesa drivers}}.}
291         \end{block}
292
293         \vspace{0.3cm}
294
295         \begin{block}{Piglit (drivers testing framework)}
296                 \footnotesize{
297                         Κι επειδή δεν είχαν γραφτεί (και δεν μπορούσαν να γραφτούν)
298                         \textbf{conformance tests} γι' αυτά,
299                         γράψαμε ένα δικό μας Vulkan framework για το
300                         {\color{coolblack}\textbf{Piglit}} (drivers testing framework, test
301                         suite) και τα δικά μας
302                         Vulkan/GL τεστ που καλύπτουν τις πιο βασικές χρήσεις των extensions.
303                 }
304         \end{block}
305 \end{frame}
306
307 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
308
309 \begin{frame}
310         \frametitle{Oι προσθήκες στο Mesa3D}
311
312         \center{
313                 \normalsize{\textbf{\color{coolblack}{Contributions στους Mesa
314         drivers}}}
315         }
316         \tiny{
317                 \begin{table}[t]
318                         \begin{tabularx}{\textwidth}{|l|X|l|}
319                                 \hline
320                                 \rowcolor{paleaqua}
321                                 Driver & Igalia's Contributions & Status \\
322                                 \hline
323                                 \hline
324                                 \rowcolor{platinum}
325                                 iris & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
326                                 EXT\_external\_objects\_fd & \cellcolor{bananamania}{parts
327                                 upstream, parts under review}\\
328                                 \rowcolor{whitesmoke}
329                                 freedreno & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
330                                 EXT\_external\_objects\_fd & \cellcolor{green}{upstream} \\
331                                 \rowcolor{platinum}
332                                 radeonsi & \textbf{\color{coolblack}support for external
333                                 buffers} to existing feature &
334                                 \cellcolor{green}{upstream} \\
335                                 \rowcolor{whitesmoke}
336                                 i965 & helped with the \textbf{\color{coolblack}review}, patches & \cellcolor{babypink}{under review
337                                 (Draft MR !5594)}\\
338                                 \hline
339                         \end{tabularx}
340                 \end{table}
341         }
342
343         \center{
344                 \normalsize{\textbf{\color{coolblack}{Contributors, reviewers,
345                 people who helped!}}}
346         }
347
348         \tiny{
349                 \begin{table}[ht]
350                         \begin{tabularx}{\textwidth}{|l|X|X|}
351                                 \hline
352                                 \rowcolor{paleaqua}
353                                 Driver & Patches & Reviews, Comments, Advice\\
354                                 \hline
355                                 \hline
356                                 \rowcolor{platinum}
357                                 iris & Juan A. Suárez Romero, Eleni Maria Stea, Tapani Pälli, Eduardo Lima Mitev
358                                 & Tapani Pälli, Rohan Garg, Eric Engestrom, Kenneth Graunke,
359                                 Jason Ekstrand, Oscar Barenys, Daniel Stone, Matt Turner, Tomeu Vizoso \\
360                                 \rowcolor{whitesmoke}
361                                 freedreno & Eduardo Lima Mitev, Hyunjun Ko & Rob
362                                 Clark, Marek Olšák, Jonathan Marek, Rohan Garg\\
363                                 \rowcolor{platinum}
364                                 radeonsi & Eleni Maria Stea (buffers support only, the rest was
365                                 implemented by AMD long time ago)
366                                 & Marek Olšák, Bas Nieuwenhuizen, Pierre-Eric Pelloux-Prayer \\
367                                 \rowcolor{whitesmoke}
368                                 i965 & Rohan Garg, Juan A. Suárez Romero, Tapani Pälli
369                                 & Tomeu Vizoso, Eleni Maria Stea, Oscar Barenys \\
370                                 \hline
371                         \end{tabularx}
372                 \end{table}
373         }
374
375         \tiny{
376                 \begin{itemize}
377                         \item {Σε περίπτωση που ξεχνάω κάποιον, οι reviewers και οι
378                                 developers φαίνονται στα Merge Requests (MR) του mesa στο
379                                 Freedesktop Gitlab (\url{https://gitlab.freedesktop.org})!}
380                 \end{itemize}
381         }
382 \end{frame}
383
384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
385
386 \begin{frame}[fragile]
387         \frametitle{Οι προσθήκες στο Piglit I}
388
389         \begin{center}
390                 \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit I }}}
391         \end{center}
392
393         \tiny{
394                 \begin{center}\textbf{Επαναχρησιμοποίηση εικόνων:}\end{center}
395                         \vspace{-0.3cm}
396                 \begin{table}[t]
397                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
398                                 \hline
399                                 \rowcolor{paleaqua}
400                                 Τεστ & Περιγραφή
401                                 & Αποτέλεσμα & Status\\
402                                 \hline
403                                 \hline
404                                 \rowcolor{platinum}
405                                 vk-image-overwrite &
406                                 \begin{itemize}
407                                         \vspace{-0.3cm}
408                                 \itemsep0cm
409                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
410                                                 δημιουργεί εικόνες που έχουν διαφορετικό format και tiling
411                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} τις
412                                         γεμίζει με πράσινο χρώμα
413                                 \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
414                                         αποτέλεσμα:}} πράσινη οθόνη
415                                 \end{itemize}
416                                 &
417                                 \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
418                                 \hline
419                                 \rowcolor{whitesmoke}
420                                 vk-image-display &
421                                 \begin{itemize}
422                                         \vspace{-0.3cm}
423                                 \itemsep0cm
424                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
425                                                 δημιουργεί μια εικόνα και τη γεμίζει με ρίγες διαφόρων
426                                                 χρωμάτων
427                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
428                                                 ζωγραφίζει την εικόνα στην οθόνη χρησιμοποιώντας semaphores
429                                                 για να συγχρονίσει την πρόσβαση στην εικόνα
430                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
431                                                 αποτέλεσμα:}} μια ριγέ εικόνα στην οθόνη
432                                 \end{itemize}
433                                 &
434                                 \adjustbox{valign=t, margin=1ex,
435                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
436                                 & \cellcolor{green}{upstream}\\
437                                 \hline
438                                 \rowcolor{platinum}
439                                 vk-image-display-overwrite &
440                                 \begin{itemize}
441                                         \vspace{-0.3cm}
442                                 \itemsep0cm
443                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
444                                         δημιουργεί μια εικόνα και τη γεμίζει
445                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
446                                                 ξαναγράφει τα pixels με μια καινούρια ριγέ εικόνα
447                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
448                                                 διαβάζει πίσω το περιεχόμενο της εικόνας
449                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
450                                                 αποτέλεσμα:}} τα pixels που θα διαβαστούν να είναι τα
451                                                 αλλαγμένα
452                                 \end{itemize}
453                                 &
454                                 \adjustbox{valign=t, margin=1ex,
455                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display_overwrite.png}}
456                                 & \cellcolor{green}{upstream}\\
457                                 \hline
458                         \end{tabularx}
459                 \end{table}
460         }
461 \end{frame}
462
463 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
464
465 \begin{frame}[fragile]
466         \frametitle{Οι προσθήκες στο Piglit II}
467
468         \begin{center}
469                 \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit II }}}
470         \end{center}
471
472         \tiny{
473                 \begin{center}\textbf{Επαναχρησιμοποίηση του depth και του stencil buffer:}\end{center}
474                 \begin{table}[t]
475                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
476                                 \hline
477                                 \rowcolor{paleaqua}
478                                 Τεστ & Περιγραφή
479                                 & Αποτέλεσμα & Status\\
480                                 \hline
481                                 \hline
482                                 \rowcolor{platinum}
483                                 vk-depth-display &
484                                 \begin{itemize}
485                                         \vspace{-0.3cm}
486                                 \itemsep0cm
487                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
488                                                 δημιουργεί κάποιο pattern στο z buffer (quad)        
489                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
490                                                 ζωγραφίζει ένα fullscreen quad σε μεγαλύτερο βάθος (z,
491                                                 depth)
492                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
493                                                 αποτέλεσμα:}}
494                                                 το quad δεν εμφανίζεται σε κάποια σημεία
495                                 \end{itemize}
496                                 &
497                                 \adjustbox{valign=t, margin=1ex,
498                                 padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
499                                 & \cellcolor{green}{upstream}\\
500                                 \hline
501                                 \rowcolor{whitesmoke}
502                                 vk-stencil-display &
503                                 \begin{itemize}
504                                         \vspace{-0.3cm}
505                                 \itemsep0cm
506                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
507                                                 δημιουργεί κάποιο pattern στο stencil buffer
508                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
509                                                 ζωγραφίζει ένα μπλε fullscreen quad χρησιμοποιώντας
510                                                 stencil testing
511                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
512                                                 αποτέλεσμα:}}
513                                                 το quad θα εμφανίζεται μόνο όπου πετυχαίνει το stencil test
514                                 \end{itemize}
515                                 &
516                                 \adjustbox{valign=t, margin=1ex,
517                                 padding=1ex}{\includegraphics[height=1cm]{shots/stencil.png}}
518                                 & \cellcolor{babypink}{under review}\\
519                                 \hline
520                         \end{tabularx}
521                 \end{table}
522                 }
523 \end{frame}
524
525 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526
527 \begin{frame}[fragile]
528         \frametitle{Οι προσθήκες στο Piglit III}
529
530         \begin{center}
531                 \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit III }}}
532         \end{center}
533
534         \tiny{
535                 \begin{center}\textbf{Επαναχρησιμοποίηση των pixel buffer:}\end{center}
536
537                 \begin{table}[tc]
538                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
539                                 \hline
540                                 \rowcolor{paleaqua}
541                                 Τεστ & Περιγραφή
542                                 & Αποτέλεσμα & Status\\
543                                 \hline
544                                 \hline
545                                 \rowcolor{platinum}
546                                 vk-buf-exchange &
547                                 \begin{itemize}
548                                         \vspace{-0.3cm}
549                                 \itemsep0cm
550                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
551                                                 δημιουργεί μια εικόνα, ζωγραφίζει σ' αυτή το pattern με
552                                                 τις ρίγες και αντιγράφει τα pixels της σ' ένα buffer
553                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
554                                                 χρησιμοποιεί αυτό το buffer ως pixel storage για ένα
555                                                 texture και το δείχνει στην οθόνη
556                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
557                                                 αποτέλεσμα:}}
558                                                 χρωματιστές μπάρες στην οθόνη
559                                 \end{itemize}
560                                 &
561                                 \adjustbox{valign=t, margin=1ex,
562                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
563                                 & \cellcolor{green}{upstream}\\
564                                 \hline
565                                 \rowcolor{whitesmoke}
566                                 vk-pix-buf-update-errors &
567                                 Όμοια με το προηγούμενο και:
568                                 \begin{itemize}
569                                 \itemsep0cm
570                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
571                                                 επιχειρεί να γράψει πάνω στο buffer ένα νέο pattern
572                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
573                                                 αποτέλεσμα:}}
574                                                 επιστρέφεται error στο χρήστη και το buffer παραμένει
575                                                 άθικτο
576                                 \end{itemize}
577                                  &
578                                 \adjustbox{valign=t, margin=1ex,
579                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
580                                 & \cellcolor{green}{upstream}\\
581                                 \hline
582                         \end{tabularx}
583                 \end{table}
584         }
585 \end{frame}
586
587 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
588
589 \begin{frame}[fragile]
590         \frametitle{Οι προσθήκες στο Piglit IV}
591
592         \begin{center}
593                 \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit IV }}}
594         \end{center}
595
596         \tiny{
597                 \begin{center}\textbf{Επαναχρησιμοποίηση των vertex buffer:}\end{center}
598                 \begin{table}[t]
599                         \begin{tabularx}{\textwidth}{|l|X|l|l|}
600                                 \hline
601                                 \rowcolor{paleaqua}
602                                 Τεστ & Περιγραφή
603                                 & Αποτέλεσμα & Status\\
604                                 \hline
605                                 \hline
606                                 \rowcolor{platinum}
607                                 vk-vert-buf-update-errors &
608                                 \begin{itemize}
609                                         \vspace{-0.3cm}
610                                 \itemsep0cm
611                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
612                                                 φτιάχνει ένα vertex buffer και γεμίζει μόνο τα ζυγά
613                                                 quads δημιουργώντας ένα pattern σκακιέρας 
614                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
615                                                 καθαρίζει (γεμίζει με) κόκκινο το framebuffer και
616                                                 ζωγραφίζει το vertex buffer με μπλε χρώμα
617                                         \item[\textbullet] \textbf{\color{coolblack}OpenGL:}
618                                                 προσπαθεί να αλλάξει το περιεχόμενο του VBO
619                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
620                                                 αποτέλεσμα:}}
621                                                 ένα pattern σκακιέρας με κόκκινα και μπλε quads
622                                                 και invalid  operation error για την απόπειρα αλλαγής των
623                                                 δεδομένων
624                                 \end{itemize}
625                                 &
626                                 \adjustbox{valign=t, margin=1ex,
627                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
628                                 & \cellcolor{green}{upstream}\\
629                                 \hline
630                                 \rowcolor{whitesmoke}
631                                 vk-vert-buf-reuse &
632                                 \begin{itemize}
633                                         \vspace{-0.3cm}
634                                 \itemsep0cm
635                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
636                                                 όμοια με το προηγούμενο τεστ
637                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
638                                                 όμοια με το προηγούμενο εκτός από το invalid overwrite test
639                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
640                                                 επαναχρησιμοποιεί το VBO σε ένα renderpass για να
641                                                 ζωγραφίσει τη σκακιέρα
642                                         \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
643                                                 αποτέλεσμα:}}
644                                                 σκακιέρα στην οθόνη
645                                 \end{itemize}
646                                 &
647                                 \adjustbox{valign=t, margin=1ex,
648                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
649                                 &
650                                 \cellcolor{green}{upstream}\\
651                                 \hline
652                         \end{tabularx}
653                 \end{table}
654         }
655 \end{frame}
656
657 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
658
659 \begin{frame}[fragile]
660         \frametitle{Οι προσθήκες στο Piglit V}
661         \begin{center}
662                 \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit V }}}\\
663         \end{center}
664
665         \vspace{0.5cm}
666
667         \tiny{
668                 \begin{table}[t]
669                         \begin{tabularx}{\textwidth}{|l|X|}
670                                 \hline
671                                 \rowcolor{paleaqua}
672                                 Contributors & Contributions \\
673                                 \hline
674                                 \hline
675                                 \rowcolor{platinum}
676                                 Eleni Maria Stea & tests,
677                                 Vulkan framework code \\
678                                 \rowcolor{whitesmoke}
679                                 Juan A. Suárez Romero & contributions στο framework, και στο
680                                 vk-image-overwrite, testing \\
681                                 \rowcolor{platinum}
682                                 Tapani Pälli (\textit{\color{coolblack}{many thanks!}}) &
683                                 reviews, testing και patches
684                                 για το framework \\
685                                 \rowcolor{whitesmoke}
686                                 Bas Nieuwenhuizen & framework patch για να υποστηρίξουμε
687                                 dedicated μνήμη \\
688                                 \rowcolor{platinum}
689                                 Topi Pohjolainen & πήραμε ιδέες από κάποια παλιά patches του στο ξεκίνημα\\
690                                 \rowcolor{whitesmoke}
691                                 Rohan Garg & κάποια μικρά fixes \\
692                                 \hline
693                         \end{tabularx}
694                 \end{table}
695         }
696
697         \vspace{0.3cm}
698
699         \begin{itemize}
700                 \item Επίσης οι {\color{darkgray}Eduardo Lima
701                         Mitev} και {\color{darkgray}Hyunjun Ko} έκαναν reviews σε κάποια
702                         tests και ο {\color{darkgray}Germán Poo Caamaño} μας βοήθησε να βάλουμε
703                         τάξη στα αρχικά commits του Vulkan framework.
704                         {\color{afblue}\smiley\small{\smiley}}
705                         \vspace{0.2cm}
706                 \item Τέλος ελπίζω ότι δεν ξεχνάω κάποιον, αλλά επειδή τα slides
707                         γράφτηκαν πριν την παρουσίαση, για περισσότερες πληροφορίες για τα MR του
708                         Piglit δείτε το \url{https://gitlab.freedesktop.org}!
709         \end{itemize}
710 \end{frame}
711
712 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
713
714 \begin{frame}[fragile]
715         \frametitle{Piglit Results}
716         \begin{block}{\begin{center}Συμπεράσματα από τη δοκιμή των mesa drivers με
717         τα tests:\end{center}}
718                 \begin{itemize}
719                                 \vspace{0.3cm}
720                         \item Σχεδόν όλα τα τεστ περνούν στους προαναφερόμενους mesa drivers
721                                 (iris, freedreno, radeonsi, i965).\\
722                                 \vspace{0.3cm}
723                         \item Δυστυχώς μόνο ο iris driver υποστηρίζει external depth
724                                 buffers (Tapani Pälli) και κανένας mesa driver δεν υποστηρίζει το external stencil
725                                 buffer. Ως τώρα μόνο ο proprietary Nvidia driver φαίνεται να
726                                 υποστηρίζει και τα 2.\\
727                                 \vspace{0.3cm}
728                         \item Tα external buffers δεν υποστηρίζονταν στον
729                                 radeonsi και τo διορθώσαμε.\\
730                                 \vspace{0.3cm}
731                 \end{itemize}
732         \end{block}
733
734 \end{frame}
735
736 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
737
738 %\begin{frame}[fragile]
739 %       \frametitle{vk-image-overwrite}
740 %       \begin{block}{vk-image-overwrite}
741 %               \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
742 %       \end{block}
743 %\end{frame}
744
745 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
746 \section[Αναφορές (ΕΝ)]{Αναφορές}
747 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
748 %\setbeamertemplate{bibliography entry title}{}
749 %\setbeamertemplate{bibliography entry location}{}
750 %\setbeamertemplate{bibliography entry note}{}
751 \setbeamerfont{bibliography item}{size=\footnotesize}
752 \setbeamerfont{bibliography entry author}{size=\footnotesize}
753 \setbeamerfont{bibliography entry title}{size=\footnotesize}
754 \setbeamerfont{bibliography entry year}{size=\footnotesize}
755 \setbeamerfont{bibliography entry note}{size=\footnotesize}
756
757 \begin{frame}[allowframebreaks]
758         \frametitle{Links}
759         \bibliographystyle{unsrt}
760         \bibliography{bib/references.bib}
761         \nocite{*}
762 \end{frame}
763
764 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
765 \section[Q \& A]{Ερωτήσεις}
766 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
767
768 \begin{frame}
769         \frametitle{Ερωτήσεις;}
770         {\fontsize{8}{7}\selectfont
771         \begin{center}
772                 \begin{figure}
773                 \includegraphics[scale=0.04]{data/qmark.png}
774                 \end{figure}
775                 \vspace{0.7cm}
776                 {\large E-mail: {\color{coolblack}estea@igalia.com}}\\
777                 {\large IRC/Freenode: {\color{coolblack}hikiko}}\\
778         \end{center}
779         }
780 \end{frame}
781
782
783 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
784
785 \begin{frame}[plain]
786 \begin{minipage}[b][0.6\textheight]{\linewidth}
787         \begin{picture}(0, 0)
788                 \put(0, -76){%
789                         \pgfuseimage{igaliabglight}
790                         }
791                         \begin{minipage}[b][0.4\textheight]{\linewidth}
792                                 \begin{figure}
793                                         \includegraphics[scale=0.6]{data/mesa.png}
794                                 \end{figure}
795                         \end{minipage}
796                 \put(-200, 0) {
797                         \hfill \huge{\textbf{\color{coolblack}Ευχαριστώ!}}\\
798                         }
799         \end{picture}
800 \end{minipage}
801
802 \end{frame}
803 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
804 \end{document}