0b95ed144b94a83f5ff2c02bd45eb3817b7de637
[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 and Vulkan interoperability extensions}
161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
162
163 \begin{frame}[fragile,c]
164         \frametitle{OpenGL and Vulkan 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{tabular}{l}
177                 \rowcolor{coolblack}
178                 \multicolumn{1}{c}{
179                 \color{paleaqua}{EXT\_external\_objects(\_fd) extensions allow:}
180                 }\\
181                 \rowcolor{platinum}
182                 \\
183                 \rowcolor{platinum}
184                 \small{· \color{coolblack}{\textbf{Allocating} the resources (textures,
185                 buffers) \textbf{once} from Vulkan.}}\\
186                 \rowcolor{platinum}
187                 \small{· \color{coolblack}{\textbf{Reusing} them \textbf{several times} from
188                 both APIs.}}\\
189                 \rowcolor{platinum}
190                 \small{· \color{coolblack}{\textbf{Synchronizing} the APIs access to
191                 the resources.}}\\
192                 \rowcolor{platinum}
193                 \\
194         \end{tabular}
195
196                 \vspace{0.5cm}
197         \end{center}
198         \footnotesize{\textbf{Example:} a Vulkan VR compositor could allocate the
199         left and right eye images but let other OpenGL processes to generate and
200         write their texture data.}
201 \end{frame}
202
203 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
204
205 \begin{frame}[fragile]
206         \frametitle{OpenGL extensions for interoperability}
207
208         \center{\textbf{\color{coolblack}{OpenGL EXTENSIONS}}}
209         \vspace{0.2cm}
210
211         \setbeamertemplate{itemize/enumerate body begin}{\footnotesize}
212         \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
213         \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny}
214
215         \setbeamertemplate{itemize items}[triangle]
216         \setbeamertemplate{blocks}[rounded][shadow]
217
218         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_object\_fd
219                 (EXT\_memory\_object\_fd, EXT\_semaphore\_fd)}:}}
220                 \begin{itemize}
221                         \item enables an OpenGL application to import a memory object or
222                                 semaphore from POSIX file descriptor external handles
223                 \end{itemize}
224         \end{block}
225
226         \vspace{0.2cm}
227
228         \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_object
229                 (EXT\_memory\_object, EXT\_semaphore)}:}}
230                 \begin{itemize}
231                         \item {functions to create GL objects, textures and buffers
232                                 from Vulkan memory}
233                         \item {functions to create GL semaphore objects that
234                                 correspond to Vulkan ones}
235                         \item {functions for synchronization}
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.5cm}
263
264         \begin{block}{Piglit (drivers testing framework)}
265                 \footnotesize{
266                         As there were \textbf{no CTS}, we've written a Vulkan framework for
267                         {\color{coolblack}\textbf{Piglit}} and Vulkan/GL tests that cover the most common
268                         EXT\_external\_objects(\_fd) use cases.
269                         }
270         \end{block}
271 \end{frame}
272
273 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274
275 \begin{frame}
276         \frametitle{Additions to Mesa (the details)}
277
278         \center{
279                 \normalsize{\textbf{\color{coolblack}{Contributions to Mesa
280         drivers}}}
281         }
282         \tiny{
283                 \begin{table}[t]
284                         \begin{tabularx}{\textwidth}{|l|X|l|}
285                                 \hline 
286                                 \rowcolor{paleaqua}
287                                 Driver & Igalia's Contributions & Status \\
288                                 \hline 
289                                 \hline 
290                                 \rowcolor{platinum}
291                                 iris & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
292                                 EXT\_external\_objects\_fd & \cellcolor{babypink}{under review (MR
293                                 !4337)}\\
294                                 \rowcolor{whitesmoke}
295                                 freedreno & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
296                                 EXT\_external\_objects\_fd & \cellcolor{green}{upstream} \\
297                                 \rowcolor{platinum}
298                                 radeonsi & \textbf{\color{coolblack}fixes} to the already implemented feature &
299                                 \cellcolor{bananamania}{work in
300                                 progress (WIP MR !6364)} \\
301                                 \rowcolor{whitesmoke}
302                                 i965 & helped with the \textbf{\color{coolblack}review}, patches & \cellcolor{babypink}{under review
303                                 (Draft MR !5594)}\\
304                                 \hline 
305                         \end{tabularx}
306                 \end{table}
307         }
308
309         \center{
310                 \normalsize{\textbf{\color{coolblack}{Contributors, reviewers,
311                 people who helped!}}}
312         }
313
314         \tiny{
315                 \begin{table}[ht]
316                         \begin{tabularx}{\textwidth}{|l|X|X|}
317                                 \hline 
318                                 \rowcolor{paleaqua}
319                                 Driver & Patches & Reviews, Comments, Advice\\
320                                 \hline 
321                                 \hline 
322                                 \rowcolor{platinum}
323                                 iris & Juan A. Suárez Romero, Eleni Maria Stea, Tapani Pälli, Eduardo Lima Mitev
324                                 & Tapani Pälli, Rohan Garg, Eric Engestrom, Kenneth Graunke,
325                                 Jason Ekstrand, Oscar Barenys, Daniel Stone, Matt Turner, Tomeu Vizoso \\
326                                 \rowcolor{whitesmoke}
327                                 freedreno & Eduardo Lima Mitev, Hyunjun Ko & Rob
328                                 Clark, Marek Olšák, Jonathan Marek, Rohan Garg\\
329                                 \rowcolor{platinum}
330                                 radeonsi & The feature was implemented by
331                                 AMD a few years ago and we are mostly working on fixes (WIP).   
332                                 & feedback from: Bas Nieuwenhuizen, Marek Olšák \\
333                                 \rowcolor{whitesmoke}
334                                 i965 & Rohan Garg, Juan A. Suárez Romero, Tapani Pälli 
335                                 & Tomeu Vizoso, Eleni Maria Stea, Oscar Barenys \\
336                                 \hline 
337                         \end{tabularx}
338                 \end{table}
339         }
340
341         \tiny{
342                 \begin{itemize}
343                         \item {The information above was accurate at the beginning of
344                                 September when I pre-recorded this presentation! Apologies if
345                                 I've not included someone or something!}
346                 \end{itemize}
347         }
348 \end{frame}
349
350 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
351
352 \begin{frame}[fragile]
353         \frametitle{Additions to Piglit (the details) I}
354
355         \begin{center}
356                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit I }}}
357         \end{center}
358
359         \tiny{
360                 \begin{center}\textbf{Reusing color images:}\end{center}
361                 \begin{table}[t]
362                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
363                                 \hline 
364                                 \rowcolor{paleaqua}
365                                 Test name & Use case
366                                 & Output & Status\\
367                                 \hline 
368                                 \hline 
369                                 \rowcolor{platinum}
370                                 vk-image-overwrite &
371                                 The test allocates images of different formats and
372                                 tiling modes using Vulkan and fills their pixels using OpenGL.
373                                 &
374                                 \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
375                                 \hline 
376                                 \rowcolor{whitesmoke}
377                                 vk-image-display & 
378                                 The test allocates a Vulkan image and renders a
379                                 pattern to it using Vulkan. Then it displays it using OpenGL.
380                                 The test uses semaphores to synchronize the GL, Vulkan access to
381                                 the texture.\vspace{0.3cm}  &
382                                 \adjustbox{valign=t, margin=1ex,
383                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
384                                 & \cellcolor{green}{upstream}\\
385                                 \hline 
386                                 \rowcolor{platinum}
387                                 vk-image-display-overwrite & 
388                                 Similar to the previous ones, but the Vulkan texture data are
389                                 overwritten again with OpenGL and then read back from Vulkan. &
390                                 \adjustbox{valign=t, margin=1ex,
391                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display_overwrite.png}}
392                                 & \cellcolor{green}{upstream}\\
393                                 \hline 
394                         \end{tabularx}
395                 \end{table}
396         }
397 \end{frame}
398
399 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
400
401 \begin{frame}[fragile]
402         \frametitle{Additions to Piglit (the details) II}
403
404         \begin{center}
405                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit II }}}
406         \end{center}
407
408         \tiny{
409                 \begin{center}\textbf{Reusing the depth and stencil buffer:}\end{center}
410                 \begin{table}[t]
411                         \begin{tabularx}{\textwidth}{|l|X|c|l|}
412                                 \hline 
413                                 \rowcolor{paleaqua}
414                                 Test name & Use case
415                                 & Output & Status\\
416                                 \hline 
417                                 \hline 
418                                 \rowcolor{platinum}
419                                 vk-depth-display & A Vulkan quad is rendered at a specific depth
420                                 \texttt{d1}. The Vulkan depth buffer is used as a depth attachment while rendering
421                                 a blue quad in an OpenGL FBO with the depth test enabled in a
422                                 depth \texttt{d2 < d1}. We see the framebuffer color where
423                                 \texttt{imported\_depth > depth}.
424                                 \vspace{0.3cm}
425                                 &
426                                 \adjustbox{valign=t, margin=1ex,
427                                 padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
428                                 & \cellcolor{babypink}{under review}\\
429                                 \hline 
430                                 \rowcolor{whitesmoke}
431                                 vk-stencil-display & Similarly, a small quad is rendered with
432                                 Vulkan and the stencil test enabled. It is
433                                 then imported and used by OpenGL that renders a fullscreen quad
434                                 with the stencil test enabled. Pixels that pass the stencil test
435                                 have the quad color and the rest the framebuffer
436                                 color.
437                                 \vspace{0.3cm} &
438                                 \adjustbox{valign=t, margin=1ex,
439                                 padding=1ex}{\includegraphics[height=1cm]{shots/stencil.png}}
440                                 & \cellcolor{babypink}{under review}\\
441                                 \hline 
442                         \end{tabularx}
443                 \end{table}
444                 }
445 \end{frame}
446
447 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448
449 \begin{frame}[fragile]
450         \frametitle{Additions to Piglit (the details) III}
451
452         \begin{center}
453                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit III }}}
454         \end{center}
455
456         \tiny{
457                 \begin{center}\textbf{Reusing a pixel buffer:}\end{center}
458
459                 \begin{table}[t]
460                         \begin{tabularx}{\textwidth}{|l|X|l|l|}
461                                 \hline 
462                                 \rowcolor{paleaqua}
463                                 Test name & Use case
464                                 & Output & Status\\
465                                 \hline 
466                                 \hline 
467                                 \rowcolor{platinum}
468                                 vk-buf-exchange &
469                                 The test renders an image and copies it to a buffer using
470                                 Vulkan. Then, the buffer is imported in OpenGL and is used as
471                                 pixel storage for an OpenGL texture. OpenGL renders the texture
472                                 and we validate that it contains the pattern that was rendered
473                                 by Vulkan. \vspace{0.3cm} &
474                                 \adjustbox{valign=t, margin=1ex,
475                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
476                                 & \cellcolor{green}{upstream}\\
477                                 \hline
478                                 \rowcolor{whitesmoke}
479                                 vk-pix-buf-update-errors &
480                                 The test is similar to the previous one with the difference that
481                                 we attempt to overwrite the buffer using BufferSubData. We
482                                 validate that an invalid operation error is generated and the
483                                 contents of the buffer remain unchanged after the
484                                 attempt.\vspace{0.3cm} & 
485                                 \adjustbox{valign=t, margin=1ex,
486                                 padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
487                                 & \cellcolor{blond}{work in progress}\\
488                                 \hline
489                         \end{tabularx}
490                 \end{table}
491         }
492 \end{frame}
493
494 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
495
496 \begin{frame}[fragile]
497         \frametitle{Additions to Piglit (the details) IV}
498
499         \begin{center}
500                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit IV }}}
501         \end{center}
502
503         \tiny{
504                 \begin{center}\textbf{Reusing a vertex buffer:}\end{center}
505                 \begin{table}[t]
506                         \begin{tabularx}{\textwidth}{|l|X|l|l|}
507                                 \hline 
508                                 \rowcolor{paleaqua}
509                                 Test name & Use case
510                                 & Output & Status\\
511                                 \hline 
512                                 \hline 
513                                 \rowcolor{platinum}
514                                 vk-vert-buf-update-errors & 
515                                 A Vulkan vertex buffer is allocated and filled with data so that
516                                 the vertices create quads that follow a chess pattern. This
517                                 vertex buffer is used by OpenGL that clears the screen with red
518                                 and paints the pixels blue.
519                                 We validate that the geometry is correct and that we can't
520                                 overwrite it using \texttt{glBufferSubdata}. \vspace{0.3cm} &
521                                 \adjustbox{valign=t, margin=1ex,
522                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
523                                 & \cellcolor{blond}{work in progress}\\
524                                 \hline 
525                                 \rowcolor{whitesmoke}
526                                 vk-vert-buf-reuse &
527                                 Similar to the previous test, but the Vulkan vertex buffer is
528                                 used in a Vulkan renderpass afterwards to make sure Vulkan can
529                                 read back and reuse the vertex buffer.\vspace{0.3cm} &
530                                 \adjustbox{valign=t, margin=1ex,
531                                 padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
532                                 &
533                                 \cellcolor{blond}{work in progress}\\
534                                 \hline 
535                         \end{tabularx}
536                 \end{table}
537         }
538 \end{frame}
539
540 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
541
542 \begin{frame}[fragile]
543         \frametitle{Additions to Piglit (the details) V}
544         \begin{center}
545                 \normalsize{\textbf{\color{coolblack}{Contributions to Piglit V }}}\\
546                 \vspace{0.5cm}
547                 \scriptsize{Same as with mesa many people helped us with the work on the
548                 tests:}
549         \end{center}
550
551         \tiny{
552                 \begin{table}[t]
553                         \begin{tabularx}{\textwidth}{|l|X|}
554                                 \hline 
555                                 \rowcolor{paleaqua}
556                                 Contributors & Contributions \\
557                                 \hline 
558                                 \hline 
559                                 \rowcolor{platinum}
560                                 Eleni Maria Stea & tests, Vulkan framework code \\
561                                 \rowcolor{whitesmoke}
562                                 Juan A. Suárez Romero & contributions to the framework, and
563                                 vk-image-overwrite, testing \\
564                                 \rowcolor{platinum}
565                                 Tapani Pälli (\textit{many thanks!}) & reviews, testing and patches
566                                 for the framework \\
567                                 \rowcolor{whitesmoke}
568                                 Bas Nieuwenhuizen & framework patch to support dedicated memory \\
569                                 \rowcolor{platinum}
570                                 Topi Pohjolainen & we've used some old patches of him as an example
571                                 at the very beginning\\
572                                 \hline 
573                         \end{tabularx}
574                 \end{table}
575         }
576
577         \begin{itemize}
578                 \item Also thanks to Germán Poo Caamaño who helped tidying up the
579                         initial mess of the Vulkan framework commits.
580                 \item Again, this information was accurate when I prepared and
581                         pre-recorded the slides. Sorry if I am missing someone or something!
582         \end{itemize}
583 \end{frame}
584
585 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
586
587 \begin{frame}[fragile]
588         \frametitle{Piglit Results}
589         \begin{block}{\begin{center}Conclusions from running the tests:\end{center}}
590                 \begin{itemize}
591                                 \vspace{0.5cm}
592                         \item The feature seems to work well for the most common use cases in
593                                 all mesa drivers mentioned before.\\
594                                 \vspace{0.5cm}
595                         \item Depth and stencil buffer exchange is only supported on
596                                 proprietary Nvidia drivers, unfortunately not on Mesa yet.\\
597                                 \vspace{0.5cm}
598                         \item radeonsi needs some fixes to better support buffers and
599                                 optimal tiling (WIP).
600                                 \vspace{0.5cm}
601                 \end{itemize}
602         \end{block}
603
604 \end{frame}
605
606 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607
608 %\begin{frame}[fragile]
609 %       \frametitle{vk-image-overwrite}
610 %       \begin{block}{vk-image-overwrite}
611 %               \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
612 %       \end{block}
613 %\end{frame}
614
615 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
616 \section[Q \& A]{Questions}
617 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618
619 \begin{frame}
620         \frametitle{Questions?}
621         {\fontsize{8}{7}\selectfont
622         \begin{center}
623                 \begin{figure}
624                 \includegraphics[scale=0.04]{data/qmark.png}
625                 \end{figure}
626                 \vspace{0.7cm}
627                 {\large E-mail: {\color{coolblack}estea@igalia.com}}\\
628                 {\large IRC/Freenode: {\color{coolblack}hikiko}}\\
629         \end{center}
630         }
631 \end{frame}
632
633 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
634 \section[References]{References}
635 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
636 %\setbeamertemplate{bibliography entry title}{}
637 %\setbeamertemplate{bibliography entry location}{}
638 %\setbeamertemplate{bibliography entry note}{}
639 \setbeamerfont{bibliography item}{size=\footnotesize}
640 \setbeamerfont{bibliography entry author}{size=\footnotesize}
641 \setbeamerfont{bibliography entry title}{size=\footnotesize}
642 \setbeamerfont{bibliography entry year}{size=\footnotesize}
643 \setbeamerfont{bibliography entry note}{size=\footnotesize}
644
645 \begin{frame}[allowframebreaks]
646         \frametitle{Links}
647         \bibliographystyle{unsrt}
648         \bibliography{bib/references.bib}
649         \nocite{*}
650 \end{frame}
651
652 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
653
654 \begin{frame}[plain]
655 \begin{minipage}[b][0.6\textheight]{\linewidth}
656         \begin{picture}(0, 0)
657                 \put(0, -76){%
658                         \pgfuseimage{igaliabglight}
659                         }
660                         \begin{minipage}[b][0.4\textheight]{\linewidth}
661                                 \begin{figure}
662                                         \includegraphics[scale=0.6]{data/mesa.png}
663                                 \end{figure}
664                         \end{minipage}
665                 \put(-200, 0) {
666                         \hfill \huge{\textbf{\color{coolblack}Thank you!}}\\
667                         }
668         \end{picture}
669 \end{minipage}
670
671 \end{frame}
672 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
673
674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
675 \end{document}