f90dd39c656b147829fba3a4c8aaa79c0d4083b9
[fc2020] / estea-xdc2020.tex
1 \documentclass[usenames,dvipsnames]{beamer}
2 \usepackage[font=small,skip=-1pt]{caption}
3 \usepackage{xcolor}
4 \usepackage{color, colortbl}
5 \usepackage{caption}
6 \usepackage{listings}
7 \usepackage{graphicx}
8 \usepackage{hyperref}
9 \usepackage{comment}
10 \usepackage{textpos}
11 \usepackage{tgpagella}
12 \usepackage[utf8]{inputenc}
13 \usepackage{fontspec}
14 \usepackage{tabularx, array, booktabs}
15 \usepackage{cite}
16 \usepackage{verbatim}
17 \usepackage{comment}
18 \usepackage{adjustbox}
19
20 \newcommand\topalign[1]{%
21   \setbox0\hbox{#1}%
22   \raisebox{\dimexpr-\ht0+\dp0\relax}{\usebox0}}
23
24 \definecolor{blond}{rgb}{0.98, 0.94, 0.75}
25 \definecolor{beige}{rgb}{0.96, 0.96, 0.86}
26 \definecolor{mGreen}{rgb}{0,0.6,0}
27 \definecolor{mGray}{rgb}{0.5,0.5,0.5}
28 \definecolor{mPurple}{rgb}{0.58,0,0.82}
29 \definecolor{bgcolor}{rgb}{0.8,0.8,0.8}
30 \definecolor{afblue}{rgb}{0.46, 0.64, 0.76}
31 \definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
32 \definecolor{paleaqua}{rgb}{0.74, 0.83, 0.9}
33 \definecolor{platinum}{rgb}{0.9, 0.89, 0.89}
34 \definecolor{whitesmoke}{rgb}{0.96, 0.96, 0.96}
35 \definecolor{carolinablue}{rgb}{0.6, 0.73, 0.89}
36 \definecolor{amber}{rgb}{1.0, 0.75, 0.0}
37 \definecolor{deepjunglegreen}{rgb}{0.0, 0.29, 0.29}
38 \definecolor{mediumred-violet}{rgb}{0.73, 0.2, 0.52}
39 \definecolor{babypink}{rgb}{0.96, 0.76, 0.76}
40 \definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
41 \definecolor{bananayellow}{rgb}{1.0, 0.88, 0.21}
42 \definecolor{bananamania}{rgb}{0.98, 0.91, 0.81}
43
44 \lstdefinestyle{CStyle}{
45         language=C++,                % choose the language of the code
46 %       basicstyle=\footnotesize,       % the size of the fonts that are used for the code
47         basicstyle=\tt\color{afblue},
48     breakatwhitespace=false,
49     breaklines=true,
50         backgroundcolor=\color{bgcolor},  % choose the background color. You must add \usepackage{color}
51         showspaces=false,               % show spaces adding particular underscores
52         showstringspaces=false,         % underline spaces within strings
53         showtabs=false,                 % show tabs within strings adding particular underscores
54         frame=single,           % adds a frame around the code
55         tabsize=2,          % sets default tabsize to 2 spaces
56         captionpos=b,           % sets the caption-position to bottom
57         breaklines=true,        % sets automatic line breaking
58         breakatwhitespace=false,    % sets if automatic breaks should only happen at whitespace
59     commentstyle=\color{mGreen},
60     keywordstyle=\color{magenta},
61     stringstyle=\color{mPurple},
62         rulesepcolor=\color{gray},
63     rulecolor=\color{black},
64 }
65
66 \setmainfont{Noto Sans} % substitute with any font that exists on your system
67 \setsansfont{Noto Sans} % substitute with any font that exists on your system
68 \setmonofont{Noto Sans Mono Medium} % substitute with any font that exists on your system
69
70 \usetheme{Warsaw}
71 \useoutertheme{infolines}
72 \usecolortheme{crane}
73
74 \captionsetup[figure]{labelformat=empty}
75
76 \addtobeamertemplate{headline}{}{\vskip2pt}
77 \addtobeamertemplate{headline}{}{%
78         \begin{textblock*}{5mm}(.9\textwidth,-0.6cm)
79         \includegraphics[height=0.67cm]{data/igalia-logo.png}
80 \end{textblock*}}
81
82 \definecolor{links}{rgb}{0.1, 0.3, 0.6}
83 \hypersetup{colorlinks,linkcolor=,urlcolor=links}
84
85 \pgfdeclareimage[height=\paperheight]{igaliabglight}{data/igalia_bg_light.eps}
86 \pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}
87
88 %\setbeamertemplate{title page}{
89 %        \begin{picture}(-90, 180)
90 %                       \put(-200, -74){%
91 %                \pgfuseimage{igaliabg}
92 %            }
93 %
94 %            \put(55,19){%
95 %                               \begin{minipage}[b][36mm][t]{240mm}
96 %                    \usebeamerfont{title}{\inserttitle\par}
97 %                    \usebeamerfont{author}{\insertauthor\par}
98 %                    \usebeamerfont{title}{\insertinstitute\par}
99 %                \end{minipage}
100 %            }
101 %               \end{picture}
102 %}
103
104 \setbeamertemplate{navigation symbols}{}
105 \setbeamertemplate{title page}{
106         \begin{picture}(0,0)
107             \put(-30,-164){%
108                 \pgfuseimage{igaliabg}
109             }
110
111             \put(0,-110.7){%
112                 \begin{minipage}[b][38mm][t]{220mm}
113                     \usebeamerfont{title}{\inserttitle\par}
114                     \usebeamerfont{author}{\insertauthor\par}
115                 \end{minipage}
116             }
117
118                         \put(240, -138){
119                                 \usebeamerfont{date}{\huge{{\insertdate}}\par}
120                                 }
121                 \end{picture}
122 }
123
124 \setbeamertemplate{itemize items}[triangle]
125 \setbeamertemplate{itemize subitem}[circle]
126 \setbeamerfont{frametitle}{size=\small}
127
128 \setbeamertemplate{blocks}[default]
129 \setbeamercolor{block title}{fg=amber,bg=black}
130
131 \title{\textbf{OpenGL and Vulkan Interoperability}}
132 \author[Eleni Maria Stea <estea@igalia.com>]{\small{Eleni Maria Stea
133 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
134 \date{XDC 2020}
135
136 \AtBeginSection[]
137 {
138   \begin{frame}
139     \frametitle{Outline}
140         \tableofcontents[currentsection]
141   \end{frame}
142 }
143
144 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
145 \begin{document}
146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
147
148 \begin{frame}[plain]
149 \titlepage
150 \end{frame}
151
152 \begin{frame}
153         \frametitle{Outline}
154         \tableofcontents
155 \end{frame}
156
157 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
158
159 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160 \section[Introduction]{OpenGL interoperability extensions}
161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162
163 \begin{frame}[fragile,c]
164         \frametitle{Interoperability Concept}
165
166         \begin{center}
167         \textbf{\color{coolblack}{INTEROPERABILITY}}
168         \vspace{0.5cm}
169
170 %
171 %       The idea is to avoid unnecessary allocations and conversions when we
172 %       exchange texture and buffer data across APIs.\\
173 %
174
175         \vspace{0.5cm}
176         \begin{tabularx}{\textwidth}{X}
177                 \rowcolor{coolblack}
178                 \multicolumn{1}{c}{
179                 \color{paleaqua}{EXT\_external\_objects(\_fd) extensions enable:}
180                 }\\
181                 \rowcolor{platinum}
182                 \\
183                 \rowcolor{platinum}
184                 \small{· \color{coolblack}{\textbf{Allocation} of resources (textures,
185                 buffers) from Vulkan and {\textbf{sharing}} of those resources from both APIs}
186                 }
187                 \\
188                 \rowcolor{platinum}
189                 \\
190                 \rowcolor{platinum}
191                 \small{· \color{coolblack}{\textbf{Synchronization} of the access to
192                 shared resources between APIs.}}\\
193                 \rowcolor{platinum}
194                 \\
195         \end{tabularx}
196
197                 \vspace{0.5cm}
198         \end{center}
199         \footnotesize{\textbf{Example:} a VR compositor where the left and right eye
200         images are allocated and displayed by Vulkan but their contents are filled by
201         OpenGL processes.}
202 \end{frame}
203
204 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
205
206 \begin{frame}[fragile]
207         \frametitle{OpenGL extensions for interoperability on Linux}
208
209         \center{\textbf{\color{coolblack}{OpenGL Extensions (Linux)}}}
210         \vspace{0.2cm}
211
212         \setbeamertemplate{itemize/enumerate body begin}{\footnotesize}
213         \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
214         \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny}
215
216         \setbeamertemplate{itemize items}[triangle]
217         \setbeamertemplate{blocks}[rounded][shadow]
218
219         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects\_fd
220                 (EXT\_memory\_object\_fd, EXT\_semaphore\_fd)}:}}
221                 \begin{itemize}
222                         \item enables an OpenGL application to import a memory object or
223                                 semaphore from POSIX file descriptor external handles
224                 \end{itemize}
225         \end{block}
226
227         \vspace{0.2cm}
228
229         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects
230                 (EXT\_memory\_object, EXT\_semaphore)}:}}
231                 \begin{itemize}
232                         \item enables an OpenGL application to
233                                 create OpenGL objects corresponding to Vulkan objects (textures,
234                                 buffers, semaphores) and synchronize access to shared objects
235                                 across APIs
236                         \item {extends existing GL calls that set and query properties}
237                 \end{itemize}
238         \end{block}
239 \end{frame}
240
241 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
242 \section[Interoperability on Mesa]{Additions to Mesa and Piglit}
243 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
244 \begin{frame}
245         \frametitle{Igalia's contributions}
246
247         \setbeamertemplate{blocks}[rounded]
248         \center{
249                 \normalsize{\textbf{\color{coolblack}{Work on the feature}}}
250                 }
251
252         \vspace{0.5cm}
253
254         \begin{block}{Mesa}
255                 \footnotesize{
256                         Igalia contributed to the implementation of the interoperability
257                         extensions for different {\color{deepjunglegreen}\textbf{Mesa
258                         drivers}}.
259                         }
260         \end{block}
261
262         \vspace{0.3cm}
263
264         \begin{block}{Piglit (drivers testing framework)}
265                 \footnotesize{
266                         As there were \textbf{no conformance tests} available for the
267                         extensions, we've written a Vulkan framework for
268                         {\color{coolblack}\textbf{Piglit}} and Vulkan/GL tests that cover
269                         some common
270                         EXT\_external\_objects(\_fd) use cases.
271                         }
272         \end{block}
273 \end{frame}
274
275 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
276
277 \begin{frame}
278         \frametitle{Additions to Mesa (the details)}
279
280         \center{
281                 \normalsize{\textbf{\color{coolblack}{Contributions to Mesa
282         drivers}}}
283         }
284         \tiny{
285                 \begin{table}[t]
286                         \begin{tabularx}{\textwidth}{|l|X|l|}
287                                 \hline
288                                 \rowcolor{paleaqua}
289                                 Driver & Igalia's Contributions & Status \\
290                                 \hline
291                                 \hline
292                                 \rowcolor{platinum}
293                                 iris & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
294                                 EXT\_external\_objects\_fd & \cellcolor{babypink}{under review (MR
295                                 !4337)}\\
296                                 \rowcolor{whitesmoke}
297                                 freedreno & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
298                                 EXT\_external\_objects\_fd & \cellcolor{green}{upstream} \\
299                                 \rowcolor{platinum}
300                                 radeonsi & \textbf{\color{coolblack}fixes} to the already implemented feature &
301                                 \cellcolor{bananamania}{work in
302                                 progress (WIP MR !6364)} \\
303                                 \rowcolor{whitesmoke}
304                                 i965 & helped with the \textbf{\color{coolblack}review}, patches & \cellcolor{babypink}{under review
305                                 (Draft MR !5594)}\\
306                                 \hline
307                         \end{tabularx}
308                 \end{table}
309         }
310
311         \center{
312                 \normalsize{\textbf{\color{coolblack}{Contributors, reviewers,
313                 people who helped!}}}
314         }
315
316         \tiny{
317                 \begin{table}[ht]
318                         \begin{tabularx}{\textwidth}{|l|X|X|}
319                                 \hline
320                                 \rowcolor{paleaqua}
321                                 Driver & Patches & Reviews, Comments, Advice\\
322                                 \hline
323                                 \hline
324                                 \rowcolor{platinum}
325                                 iris & Juan A. Suárez Romero, Eleni Maria Stea, Tapani Pälli, Eduardo Lima Mitev
326                                 & Tapani Pälli, Rohan Garg, Eric Engestrom, Kenneth Graunke,
327                                 Jason Ekstrand, Oscar Barenys, Daniel Stone, Matt Turner, Tomeu Vizoso \\
328                                 \rowcolor{whitesmoke}
329                                 freedreno & Eduardo Lima Mitev, Hyunjun Ko & Rob
330                                 Clark, Marek Olšák, Jonathan Marek, Rohan Garg\\
331                                 \rowcolor{platinum}
332                                 radeonsi & The feature was implemented by
333                                 AMD a few years ago and we are mostly working on fixes (WIP).   
334                                 & feedback from: Bas Nieuwenhuizen, Marek Olšák \\
335                                 \rowcolor{whitesmoke}
336                                 i965 & Rohan Garg, Juan A. Suárez Romero, Tapani Pälli
337                                 & Tomeu Vizoso, Eleni Maria Stea, Oscar Barenys \\
338                                 \hline
339                         \end{tabularx}
340                 \end{table}
341         }
342
343         \tiny{
344                 \begin{itemize}
345                         \item {The information above was accurate at the beginning of
346                                 September when I pre-recorded this presentation! Apologies if
347                                 I've not included someone or something!}
348                 \end{itemize}
349         }
350 \end{frame}
351
352 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
353
354 \begin{frame}[fragile]
355         \frametitle{Additions to Piglit (the details) I}
356
357         \begin{center}
358                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit I }}}
359         \end{center}
360
361         \tiny{
362                 \begin{center}\textbf{Reusing color images:}\end{center}
363                         \vspace{-0.3cm}
364                 \begin{table}[t]
365                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
366                                 \hline
367                                 \rowcolor{paleaqua}
368                                 Test name & Description
369                                 & Output & Status\\
370                                 \hline
371                                 \hline
372                                 \rowcolor{platinum}
373                                 vk-image-overwrite &
374                                 \begin{itemize}
375                                         \vspace{-0.3cm}
376                                 \itemsep0cm
377                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:} allocates images of
378                                                 different formats and tiling modes
379                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} fills them with
380                                                 green
381                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}} green screen
382                                 \end{itemize}
383                                 &
384                                 \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
385                                 \hline
386                                 \rowcolor{whitesmoke}
387                                 vk-image-display &
388                                 \begin{itemize}
389                                         \vspace{-0.3cm}
390                                 \itemsep0cm
391                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:} creates
392                                                 an image and fills it with colored bars
393                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} draws
394                                                 the image on screen using semaphores to synchronize
395                                                 access
396                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
397                                                 a stripped image on screen
398                                 \end{itemize}
399                                 &
400                                 \adjustbox{valign=t, margin=1ex,
401                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
402                                 & \cellcolor{green}{upstream}\\
403                                 \hline
404                                 \rowcolor{platinum}
405                                 vk-image-display-overwrite &
406                                 \begin{itemize}
407                                         \vspace{-0.3cm}
408                                 \itemsep0cm
409                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:} creates
410                                                 an image and fills it
411                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
412                                                 overwrites that image with another stripped pattern
413                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
414                                                 reads back the contents of the image
415                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
416                                         the modified contents to be read back   
417                                 \end{itemize}
418                                 &
419                                 \adjustbox{valign=t, margin=1ex,
420                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display_overwrite.png}}
421                                 & \cellcolor{green}{upstream}\\
422                                 \hline
423                         \end{tabularx}
424                 \end{table}
425         }
426 \end{frame}
427
428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
429
430 \begin{frame}[fragile]
431         \frametitle{Additions to Piglit (the details) II}
432
433         \begin{center}
434                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit II }}}
435         \end{center}
436
437         \tiny{
438                 \begin{center}\textbf{Reusing the depth and stencil buffer:}\end{center}
439                 \begin{table}[t]
440                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
441                                 \hline
442                                 \rowcolor{paleaqua}
443                                 Test name & Description
444                                 & Output & Status\\
445                                 \hline
446                                 \hline
447                                 \rowcolor{platinum}
448                                 vk-depth-display &
449                                 \begin{itemize}
450                                         \vspace{-0.3cm}
451                                 \itemsep0cm
452                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
453                                                 creates a depth buffer pattern
454                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
455                                                 draws a fullscreen quad at a greater depth
456                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
457                                                 quad partially obscured
458                                 \end{itemize}
459                                 &
460                                 \adjustbox{valign=t, margin=1ex,
461                                 padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
462                                 & \cellcolor{babypink}{under review}\\
463                                 \hline
464                                 \rowcolor{whitesmoke}
465                                 vk-stencil-display &
466                                 \begin{itemize}
467                                         \vspace{-0.3cm}
468                                 \itemsep0cm
469                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
470                                                 creates a pattern in the stencil buffer
471                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
472                                                 draws a blue fullscreen quad with stencil testing
473                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
474                                                 quad masked by stencil pattern
475                                 \end{itemize}
476                                 &
477                                 \adjustbox{valign=t, margin=1ex,
478                                 padding=1ex}{\includegraphics[height=1cm]{shots/stencil.png}}
479                                 & \cellcolor{babypink}{under review}\\
480                                 \hline
481                         \end{tabularx}
482                 \end{table}
483                 }
484 \end{frame}
485
486 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
487
488 \begin{frame}[fragile]
489         \frametitle{Additions to Piglit (the details) III}
490
491         \begin{center}
492                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit III }}}
493         \end{center}
494
495         \tiny{
496                 \begin{center}\textbf{Reusing a pixel buffer:}\end{center}
497
498                 \begin{table}[tc]
499                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
500                                 \hline
501                                 \rowcolor{paleaqua}
502                                 Test name & Description
503                                 & Output & Status\\
504                                 \hline
505                                 \hline
506                                 \rowcolor{platinum}
507                                 vk-buf-exchange &
508                                 \begin{itemize}
509                                         \vspace{-0.3cm}
510                                 \itemsep0cm
511                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
512                                                 creates and fills an image with color bars and copies
513                                                 its content to a buffer
514                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
515                                                 uses the buffer as pixel storage for a texture and
516                                                 displays it
517                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
518                                                 colored bars on screen
519                                 \end{itemize}
520                                 &
521                                 \adjustbox{valign=t, margin=1ex,
522                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
523                                 & \cellcolor{green}{upstream}\\
524                                 \hline
525                                 \rowcolor{whitesmoke}
526                                 vk-pix-buf-update-errors &
527                                 Same as above and:
528                                 \begin{itemize}
529                                 \itemsep0cm
530                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
531                                                 attempts to overwrite the buffer
532                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
533                                                 error is generated, the buffer remains unchanged
534                                 \end{itemize}
535                                  &
536                                 \adjustbox{valign=t, margin=1ex,
537                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
538                                 & \cellcolor{blond}{work in progress}\\
539                                 \hline
540                         \end{tabularx}
541                 \end{table}
542         }
543 \end{frame}
544
545 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
546
547 \begin{frame}[fragile]
548         \frametitle{Additions to Piglit (the details) IV}
549
550         \begin{center}
551                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit IV }}}
552         \end{center}
553
554         \tiny{
555                 \begin{center}\textbf{Reusing a vertex buffer:}\end{center}
556                 \begin{table}[t]
557                         \begin{tabularx}{\textwidth}{|l|X|l|l|}
558                                 \hline
559                                 \rowcolor{paleaqua}
560                                 Test name & Description
561                                 & Output & Status\\
562                                 \hline
563                                 \hline
564                                 \rowcolor{platinum}
565                                 vk-vert-buf-update-errors &
566                                 \begin{itemize}
567                                         \vspace{-0.3cm}
568                                 \itemsep0cm
569                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
570                                                 creates a vertex buffer and fills it with only the odd
571                                                 quads of a chess board pattern
572                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
573                                                 clears the screen to red and draws the vertex buffer in
574                                                 blue
575                                         \item[\textbullet] \textbf{\color{coolblack}OpenGL:}
576                                                 attempts to overwrite the VBO
577                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
578                                                 a red-blue chess board pattern on screen and an invalid
579                                                 operation error is generated
580                                 \end{itemize}
581                                 &
582                                 \adjustbox{valign=t, margin=1ex,
583                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
584                                 & \cellcolor{blond}{work in progress}\\
585                                 \hline
586                                 \rowcolor{whitesmoke}
587                                 vk-vert-buf-reuse &
588                                 \begin{itemize}
589                                         \vspace{-0.3cm}
590                                 \itemsep0cm
591                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
592                                                 same as above
593                                         \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
594                                                 same as above minus the invalid overwrite test
595                                         \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
596                                                 reuses the VBO in a renderpass to draw the chess board
597                                         \item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
598                                                 chessboard on screen
599                                 \end{itemize}
600                                 &
601                                 \adjustbox{valign=t, margin=1ex,
602                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
603                                 &
604                                 \cellcolor{blond}{work in progress}\\
605                                 \hline
606                         \end{tabularx}
607                 \end{table}
608         }
609 \end{frame}
610
611 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612
613 \begin{frame}[fragile]
614         \frametitle{Additions to Piglit (the details) V}
615         \begin{center}
616                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit V }}}\\
617                 \vspace{0.5cm}
618                 \scriptsize{Many people helped us with the work on the
619                 tests:}
620         \end{center}
621
622         \tiny{
623                 \begin{table}[t]
624                         \begin{tabularx}{\textwidth}{|l|X|}
625                                 \hline
626                                 \rowcolor{paleaqua}
627                                 Contributors & Contributions \\
628                                 \hline
629                                 \hline
630                                 \rowcolor{platinum}
631                                 Eleni Maria Stea & tests, Vulkan framework code \\
632                                 \rowcolor{whitesmoke}
633                                 Juan A. Suárez Romero & contributions to the framework, and
634                                 vk-image-overwrite, testing \\
635                                 \rowcolor{platinum}
636                                 Tapani Pälli (\textit{\color{coolblack}{many thanks!}}) & reviews, testing and patches
637                                 for the framework \\
638                                 \rowcolor{whitesmoke}
639                                 Bas Nieuwenhuizen & framework patch to support dedicated memory \\
640                                 \rowcolor{platinum}
641                                 Topi Pohjolainen & we've used some old patches of him as an example
642                                 at the very beginning\\
643                                 \hline
644                         \end{tabularx}
645                 \end{table}
646         }
647
648         \begin{itemize}
649                 \item Also thanks to Germán Poo Caamaño who helped tidying up the
650                         initial mess of the Vulkan framework commits.
651                 \item Again, this information was accurate when I prepared and
652                         pre-recorded the slides. Sorry if I am missing someone or something!
653         \end{itemize}
654 \end{frame}
655
656 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
657
658 \begin{frame}[fragile]
659         \frametitle{Piglit Results}
660         \begin{block}{\begin{center}Conclusions from running the tests:\end{center}}
661                 \begin{itemize}
662                                 \vspace{0.5cm}
663                         \item Most of the new Piglit tests are passing in the mesa drivers
664                                 mentioned before (iris, freedreno, radeonsi, i965).\\
665                                 \vspace{0.5cm}
666                         \item Unfortunately Mesa does not yet support the depth and stencil
667                                 buffer exchange. The only implementation I 've found that currently
668                                 supports this feature is the Nvidia proprietary driver.\\
669                                 \vspace{0.5cm}
670                         \item radeonsi needs some fixes to better support buffers and
671                                 optimal tiling (WIP).
672                                 \vspace{0.5cm}
673                 \end{itemize}
674         \end{block}
675
676 \end{frame}
677
678 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
679
680 %\begin{frame}[fragile]
681 %       \frametitle{vk-image-overwrite}
682 %       \begin{block}{vk-image-overwrite}
683 %               \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
684 %       \end{block}
685 %\end{frame}
686
687 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688 \section[Q \& A]{Questions}
689 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
690
691 \begin{frame}
692         \frametitle{Questions?}
693         {\fontsize{8}{7}\selectfont
694         \begin{center}
695                 \begin{figure}
696                 \includegraphics[scale=0.04]{data/qmark.png}
697                 \end{figure}
698                 \vspace{0.7cm}
699                 {\large E-mail: {\color{coolblack}estea@igalia.com}}\\
700                 {\large IRC/Freenode: {\color{coolblack}hikiko}}\\
701         \end{center}
702         }
703 \end{frame}
704
705 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
706 \section[References]{References}
707 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708 %\setbeamertemplate{bibliography entry title}{}
709 %\setbeamertemplate{bibliography entry location}{}
710 %\setbeamertemplate{bibliography entry note}{}
711 \setbeamerfont{bibliography item}{size=\footnotesize}
712 \setbeamerfont{bibliography entry author}{size=\footnotesize}
713 \setbeamerfont{bibliography entry title}{size=\footnotesize}
714 \setbeamerfont{bibliography entry year}{size=\footnotesize}
715 \setbeamerfont{bibliography entry note}{size=\footnotesize}
716
717 \begin{frame}[allowframebreaks]
718         \frametitle{Links}
719         \bibliographystyle{unsrt}
720         \bibliography{bib/references.bib}
721         \nocite{*}
722 \end{frame}
723
724 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
725
726 \begin{frame}[plain]
727 \begin{minipage}[b][0.6\textheight]{\linewidth}
728         \begin{picture}(0, 0)
729                 \put(0, -76){%
730                         \pgfuseimage{igaliabglight}
731                         }
732                         \begin{minipage}[b][0.4\textheight]{\linewidth}
733                                 \begin{figure}
734                                         \includegraphics[scale=0.6]{data/mesa.png}
735                                 \end{figure}
736                         \end{minipage}
737                 \put(-200, 0) {
738                         \hfill \huge{\textbf{\color{coolblack}Thank you!}}\\
739                         }
740         \end{picture}
741 \end{minipage}
742
743 \end{frame}
744 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
745
746 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
747 \end{document}