foobar
authorEleni Maria Stea <estea@igalia.com>
Sun, 13 Sep 2020 11:25:57 +0000 (14:25 +0300)
committerEleni Maria Stea <estea@igalia.com>
Sun, 13 Sep 2020 11:25:57 +0000 (14:25 +0300)
bib/references.bib
estea-xdc2020.tex

index 9080310..419b920 100644 (file)
@@ -1,7 +1,18 @@
+@manual{blog_posts,
+       title = {OpenGL and Vulkan Interoperability on Linux (Blog posts on the Piglit tests use cases)},
+       note = {\url{https://eleni.mutantstargoat.com/hikiko/category/igalia/graphics_drivers/opengl-and-vulkan-interoperability/}}
+}
+
 @manual{ext_external_objects,
   title = {EXT\_external\_objects (GL\_EXT\_memory\_object, GL\_EXT\_semaphore)},
   note = {\url{https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_external_objects.txt}},
-  author = {Carsten, Rohde and Dave, Airlie and James, Jones
-         and Jan-Harald, Fredriksen and Jeff, Juliano and Michael, Worcester},
+  author = {Rohde, Carsten and Airlie, Dave and Jones, James and Fredriksen, Jan-Harald and Juliano, Jeff and Worcester, Michael},
   year = {July 18, 2018}
 }
+
+@manual{ext_external_objects_fd,
+  title = {EXT\_external\_objects\_fd (GL\_EXT\_memory\_object\_fd, GL\_EXT\_semaphore\_fd)},
+  note = {\url{https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_external_objects_fd.txt}},
+  author = {Rhode, Carsten and Jones, James and Fredriksen, Jan Harald and Juliano, Jeff},
+  year = {June 2, 2017}
+}
index c0b1285..0b95ed1 100644 (file)
@@ -1,6 +1,7 @@
 \documentclass[usenames,dvipsnames]{beamer}
 \usepackage[font=small,skip=-1pt]{caption}
 \usepackage{xcolor}
+\usepackage{color, colortbl}
 \usepackage{caption}
 \usepackage{listings}
 \usepackage{graphicx}
 \usepackage{tgpagella}
 \usepackage[utf8]{inputenc}
 \usepackage{fontspec}
-\usepackage{tabularx}
+\usepackage{tabularx, array, booktabs}
 \usepackage{cite}
+\usepackage{verbatim}
+\usepackage{comment}
+\usepackage{adjustbox}
+
+\newcommand\topalign[1]{%
+  \setbox0\hbox{#1}%
+  \raisebox{\dimexpr-\ht0+\dp0\relax}{\usebox0}}
 
+\definecolor{blond}{rgb}{0.98, 0.94, 0.75}
+\definecolor{beige}{rgb}{0.96, 0.96, 0.86}
 \definecolor{mGreen}{rgb}{0,0.6,0}
 \definecolor{mGray}{rgb}{0.5,0.5,0.5}
 \definecolor{mPurple}{rgb}{0.58,0,0.82}
 \definecolor{bgcolor}{rgb}{0.8,0.8,0.8}
-\definecolor{afblue}{rgb}{0.26, 0.44, 0.56}
+\definecolor{afblue}{rgb}{0.46, 0.64, 0.76}
 \definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
+\definecolor{paleaqua}{rgb}{0.74, 0.83, 0.9}
+\definecolor{platinum}{rgb}{0.9, 0.89, 0.89}
+\definecolor{whitesmoke}{rgb}{0.96, 0.96, 0.96}
+\definecolor{carolinablue}{rgb}{0.6, 0.73, 0.89}
+\definecolor{amber}{rgb}{1.0, 0.75, 0.0}
+\definecolor{deepjunglegreen}{rgb}{0.0, 0.29, 0.29}
+\definecolor{mediumred-violet}{rgb}{0.73, 0.2, 0.52}
+\definecolor{babypink}{rgb}{0.96, 0.76, 0.76}
+\definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
+\definecolor{bananayellow}{rgb}{1.0, 0.88, 0.21}
+\definecolor{bananamania}{rgb}{0.98, 0.91, 0.81}
 
 \lstdefinestyle{CStyle}{
        language=C++,                % choose the language of the code
        \includegraphics[height=0.67cm]{data/igalia-logo.png}
 \end{textblock*}}
 
-\definecolor{links}{rgb}{0, 0.6, 0}
+\definecolor{links}{rgb}{0.1, 0.3, 0.6}
 \hypersetup{colorlinks,linkcolor=,urlcolor=links}
 
-%\pgfdeclareimage[height=\paperheight]{igaliabg}{data/igalia_bg_light.eps}
+\pgfdeclareimage[height=\paperheight]{igaliabglight}{data/igalia_bg_light.eps}
 \pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}
 
 %\setbeamertemplate{title page}{
                     \usebeamerfont{author}{\insertauthor\par}
                 \end{minipage}
             }
+
+                       \put(240, -138){
+                               \usebeamerfont{date}{\huge{{\insertdate}}\par}
+                               }
                \end{picture}
 }
 
 \setbeamerfont{frametitle}{size=\small}
 
 \setbeamertemplate{blocks}[default]
-\setbeamercolor{block title}{fg=lightgray,bg=black}
+\setbeamercolor{block title}{fg=amber,bg=black}
+
 \title{\textbf{OpenGL and Vulkan Interoperability}}
 \author[Eleni Maria Stea <estea@igalia.com>]{\small{Eleni Maria Stea
 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
-\date{}
+\date{XDC 2020}
 
 \AtBeginSection[]
 {
 \section[Introduction]{OpenGL and Vulkan interoperability extensions}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\begin{frame}
-       \frametitle{OpenGL and Vulkan Interoperability}
+\begin{frame}[fragile,c]
+       \frametitle{OpenGL and Vulkan Interoperability Concept}
 
-       \center{\textbf{\color{coolblack}{INTEROPERABILITY}}}
+       \begin{center}
+       \textbf{\color{coolblack}{INTEROPERABILITY}}
        \vspace{0.5cm}
 
-       The idea is to avoid unnecessary allocations and conversions when we
-       exchange texture and buffer data across APIs.\\
-       \vspace{0.3cm}
-       Interoperability extensions allow us to:\\
+%
+%      The idea is to avoid unnecessary allocations and conversions when we
+%      exchange texture and buffer data across APIs.\\
+%
+
        \vspace{0.5cm}
+       \begin{tabular}{l}
+               \rowcolor{coolblack}
+               \multicolumn{1}{c}{
+               \color{paleaqua}{EXT\_external\_objects(\_fd) extensions allow:}
+               }\\
+               \rowcolor{platinum}
+               \\
+               \rowcolor{platinum}
+               \small{· \color{coolblack}{\textbf{Allocating} the resources (textures,
+               buffers) \textbf{once} from Vulkan.}}\\
+               \rowcolor{platinum}
+               \small{· \color{coolblack}{\textbf{Reusing} them \textbf{several times} from
+               both APIs.}}\\
+               \rowcolor{platinum}
+               \small{· \color{coolblack}{\textbf{Synchronizing} the APIs access to
+               the resources.}}\\
+               \rowcolor{platinum}
+               \\
+       \end{tabular}
+
+               \vspace{0.5cm}
+       \end{center}
+       \footnotesize{\textbf{Example:} a Vulkan VR compositor could allocate the
+       left and right eye images but let other OpenGL processes to generate and
+       write their texture data.}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{OpenGL extensions for interoperability}
+
+       \center{\textbf{\color{coolblack}{OpenGL EXTENSIONS}}}
+       \vspace{0.2cm}
+
+       \setbeamertemplate{itemize/enumerate body begin}{\footnotesize}
+       \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
+       \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny}
+
+       \setbeamertemplate{itemize items}[triangle]
+       \setbeamertemplate{blocks}[rounded][shadow]
 
-       {\fontsize{10}{10}\selectfont
-               \begin{itemize}\setlength\itemsep{0.5cm}
-                               \item {\color{afblue} \textbf{Allocate} the resources (textures,
-                                       buffers) \textbf{once} from Vulkan.}
-                               \item {\color{afblue} \textbf{Reuse} them \textbf{several
-                                       times} from both APIs.}
-                               \item {\color{afblue} \textbf{Synchronize} the APIs access to the
-                                       resources.}
+       \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_object\_fd
+               (EXT\_memory\_object\_fd, EXT\_semaphore\_fd)}:}}
+               \begin{itemize}
+                       \item enables an OpenGL application to import a memory object or
+                               semaphore from POSIX file descriptor external handles
                \end{itemize}
-       }
+       \end{block}
+
+       \vspace{0.2cm}
+
+       \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_object
+               (EXT\_memory\_object, EXT\_semaphore)}:}}
+               \begin{itemize}
+                       \item {functions to create GL objects, textures and buffers
+                               from Vulkan memory}
+                       \item {functions to create GL semaphore objects that
+                               correspond to Vulkan ones}
+                       \item {functions for synchronization}
+                       \item {extends existing GL calls that set and query properties}
+               \end{itemize}
+       \end{block}
 \end{frame}
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[Interoperability on Mesa]{Additions to Mesa and Piglit}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}
-       \frametitle{OpenGL extensions for interoperability}
-       
-       \center{\textbf{\color{coolblack}{OpenGL EXTENSIONS}}}
+       \frametitle{Igalia's contributions}
+
+       \setbeamertemplate{blocks}[rounded]
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Work on the feature}}}
+               }
+
        \vspace{0.5cm}
 
-       {\fontsize{10}{10}\selectfont
-\begin{itemize}\setlength\itemsep{0.5cm}
-               \item {\color{afblue}\textbf{EXT\_external\_object} extension:}
-                       \begin{itemize}
-                               \item provides the functions to create GL objects, textures and buffers
-                                       from Vulkan memory.
-                               \item provides the functions to create GL semaphores that
-                                       correspond to Vulkan ones.
-                               \item provides the functions for synchronization.
-                       \end{itemize}
-               \item {\color{afblue}\textbf{EXT\_external\_objects\_fd}
-                       extension:}
-                       {\fontsize{7}{6}\selectfont
-                       \begin{itemize}
-                               \item provides a function to import a file descriptor to the Vulkan
-                                       memory.
-                               \item provides a function to import a file descriptor to the Vulkan semaphores. 
-                       \end{itemize}
+       \begin{block}{Mesa}
+               \footnotesize{
+                       Igalia contributed to the implementation of the interoperability
+                       extensions for different {\color{deepjunglegreen}\textbf{Mesa
+                       drivers}}.
                        }
-\end{itemize}
-}
+       \end{block}
+
+       \vspace{0.5cm}
+
+       \begin{block}{Piglit (drivers testing framework)}
+               \footnotesize{
+                       As there were \textbf{no CTS}, we've written a Vulkan framework for
+                       {\color{coolblack}\textbf{Piglit}} and Vulkan/GL tests that cover the most common
+                       EXT\_external\_objects(\_fd) use cases.
+                       }
+       \end{block}
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section[Interoperability on Mesa]{Additions to Mesa and Piglit}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{frame}
-       \frametitle{Additions to Mesa}
+       \frametitle{Additions to Mesa (the details)}
 
        \center{
-               \normalsize{\textbf{\color{coolblack}{Igalia's contributions to Mesa
+               \normalsize{\textbf{\color{coolblack}{Contributions to Mesa
        drivers}}}
        }
-
        \tiny{
-               \begin{table}
+               \begin{table}[t]
                        \begin{tabularx}{\textwidth}{|l|X|l|}
                                \hline 
+                               \rowcolor{paleaqua}
                                Driver & Igalia's Contributions & Status \\
                                \hline 
-                               iris & implemented EXT\_external\_objects, EXT\_external\_objects\_fd & under review \\
-                               freedreno & implemented EXT\_external\_objects,
-                               EXT\_external\_objects\_fd & upstream \\
-                               radeonsi & fixes to the already implemented feature & under
-                               review \\
-                               i965 & helped with the review & under review\\
+                               \hline 
+                               \rowcolor{platinum}
+                               iris & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
+                               EXT\_external\_objects\_fd & \cellcolor{babypink}{under review (MR
+                               !4337)}\\
+                               \rowcolor{whitesmoke}
+                               freedreno & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
+                               EXT\_external\_objects\_fd & \cellcolor{green}{upstream} \\
+                               \rowcolor{platinum}
+                               radeonsi & \textbf{\color{coolblack}fixes} to the already implemented feature &
+                               \cellcolor{bananamania}{work in
+                               progress (WIP MR !6364)} \\
+                               \rowcolor{whitesmoke}
+                               i965 & helped with the \textbf{\color{coolblack}review}, patches & \cellcolor{babypink}{under review
+                               (Draft MR !5594)}\\
                                \hline 
                        \end{tabularx}
                \end{table}
        }
 
        \center{
-               \normalsize{\textbf{\color{coolblack}{Thanks and Credits}}}
+               \normalsize{\textbf{\color{coolblack}{Contributors, reviewers,
+               people who helped!}}}
        }
 
        \tiny{
-               \begin{table}
+               \begin{table}[ht]
                        \begin{tabularx}{\textwidth}{|l|X|X|}
                                \hline 
+                               \rowcolor{paleaqua}
                                Driver & Patches & Reviews, Comments, Advice\\
                                \hline 
-                               iris & Juan A. Juarez Romero, Eleni Maria Stea, Tapani Palli,
-                               Eduardo Lima Mitev, zzzoon & collab, tapani, jason klp \\
-                               freedreno & foo & bar\\
-                               radeonsi & foo & bar\\
-                               i965 & foo & bar\\
+                               \hline 
+                               \rowcolor{platinum}
+                               iris & Juan A. Suárez Romero, Eleni Maria Stea, Tapani Pälli, Eduardo Lima Mitev
+                               & Tapani Pälli, Rohan Garg, Eric Engestrom, Kenneth Graunke,
+                               Jason Ekstrand, Oscar Barenys, Daniel Stone, Matt Turner, Tomeu Vizoso \\
+                               \rowcolor{whitesmoke}
+                               freedreno & Eduardo Lima Mitev, Hyunjun Ko & Rob
+                               Clark, Marek Olšák, Jonathan Marek, Rohan Garg\\
+                               \rowcolor{platinum}
+                               radeonsi & The feature was implemented by
+                               AMD a few years ago and we are mostly working on fixes (WIP).   
+                               & feedback from: Bas Nieuwenhuizen, Marek Olšák \\
+                               \rowcolor{whitesmoke}
+                               i965 & Rohan Garg, Juan A. Suárez Romero, Tapani Pälli 
+                               & Tomeu Vizoso, Eleni Maria Stea, Oscar Barenys \\
                                \hline 
                        \end{tabularx}
                \end{table}
        }
+
+       \tiny{
+               \begin{itemize}
+                       \item {The information above was accurate at the beginning of
+                               September when I pre-recorded this presentation! Apologies if
+                               I've not included someone or something!}
+               \end{itemize}
+       }
 \end{frame}
 
-\begin{frame}
-       \frametitle{Piglit tests cases}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-       As there were no CTS for these extensions and we needed to test
-       mesa, we've written some Piglit tests with simple use cases of the
-       extension.
+\begin{frame}[fragile]
+       \frametitle{Additions to Piglit (the details) I}
 
-       \vspace{0.5cm}
-       WIP igalia intel logos
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions to Piglit I }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Reusing color images:}\end{center}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|c|l|}
+                               \hline 
+                               \rowcolor{paleaqua}
+                               Test name & Use case
+                               & Output & Status\\
+                               \hline 
+                               \hline 
+                               \rowcolor{platinum}
+                               vk-image-overwrite &
+                               The test allocates images of different formats and
+                               tiling modes using Vulkan and fills their pixels using OpenGL.
+                               &
+                               \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
+                               \hline 
+                               \rowcolor{whitesmoke}
+                               vk-image-display & 
+                               The test allocates a Vulkan image and renders a
+                               pattern to it using Vulkan. Then it displays it using OpenGL.
+                               The test uses semaphores to synchronize the GL, Vulkan access to
+                               the texture.\vspace{0.3cm}  &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline 
+                               \rowcolor{platinum}
+                               vk-image-display-overwrite & 
+                               Similar to the previous ones, but the Vulkan texture data are
+                               overwritten again with OpenGL and then read back from Vulkan. &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display_overwrite.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline 
+                       \end{tabularx}
+               \end{table}
+       }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Additions to Piglit (the details) II}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions to Piglit II }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Reusing the depth and stencil buffer:}\end{center}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|c|l|}
+                               \hline 
+                               \rowcolor{paleaqua}
+                               Test name & Use case
+                               & Output & Status\\
+                               \hline 
+                               \hline 
+                               \rowcolor{platinum}
+                               vk-depth-display & A Vulkan quad is rendered at a specific depth
+                               \texttt{d1}. The Vulkan depth buffer is used as a depth attachment while rendering
+                               a blue quad in an OpenGL FBO with the depth test enabled in a
+                               depth \texttt{d2 < d1}. We see the framebuffer color where
+                               \texttt{imported\_depth > depth}.
+                               \vspace{0.3cm}
+                               &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
+                               & \cellcolor{babypink}{under review}\\
+                               \hline 
+                               \rowcolor{whitesmoke}
+                               vk-stencil-display & Similarly, a small quad is rendered with
+                               Vulkan and the stencil test enabled. It is
+                               then imported and used by OpenGL that renders a fullscreen quad
+                               with the stencil test enabled. Pixels that pass the stencil test
+                               have the quad color and the rest the framebuffer
+                               color.
+                               \vspace{0.3cm} &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/stencil.png}}
+                               & \cellcolor{babypink}{under review}\\
+                               \hline 
+                       \end{tabularx}
+               \end{table}
+               }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Additions to Piglit (the details) III}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions to Piglit III }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Reusing a pixel buffer:}\end{center}
+
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|l|l|}
+                               \hline 
+                               \rowcolor{paleaqua}
+                               Test name & Use case
+                               & Output & Status\\
+                               \hline 
+                               \hline 
+                               \rowcolor{platinum}
+                               vk-buf-exchange &
+                               The test renders an image and copies it to a buffer using
+                               Vulkan. Then, the buffer is imported in OpenGL and is used as
+                               pixel storage for an OpenGL texture. OpenGL renders the texture
+                               and we validate that it contains the pattern that was rendered
+                               by Vulkan. \vspace{0.3cm} &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline
+                               \rowcolor{whitesmoke}
+                               vk-pix-buf-update-errors &
+                               The test is similar to the previous one with the difference that
+                               we attempt to overwrite the buffer using BufferSubData. We
+                               validate that an invalid operation error is generated and the
+                               contents of the buffer remain unchanged after the
+                               attempt.\vspace{0.3cm} & 
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+                               & \cellcolor{blond}{work in progress}\\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Additions to Piglit (the details) IV}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions to Piglit IV }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Reusing a vertex buffer:}\end{center}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|l|l|}
+                               \hline 
+                               \rowcolor{paleaqua}
+                               Test name & Use case
+                               & Output & Status\\
+                               \hline 
+                               \hline 
+                               \rowcolor{platinum}
+                               vk-vert-buf-update-errors & 
+                               A Vulkan vertex buffer is allocated and filled with data so that
+                               the vertices create quads that follow a chess pattern. This
+                               vertex buffer is used by OpenGL that clears the screen with red
+                               and paints the pixels blue.
+                               We validate that the geometry is correct and that we can't
+                               overwrite it using \texttt{glBufferSubdata}. \vspace{0.3cm} &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+                               & \cellcolor{blond}{work in progress}\\
+                               \hline 
+                               \rowcolor{whitesmoke}
+                               vk-vert-buf-reuse &
+                               Similar to the previous test, but the Vulkan vertex buffer is
+                               used in a Vulkan renderpass afterwards to make sure Vulkan can
+                               read back and reuse the vertex buffer.\vspace{0.3cm} &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+                               &
+                               \cellcolor{blond}{work in progress}\\
+                               \hline 
+                       \end{tabularx}
+               \end{table}
+       }
 \end{frame}
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Additions to Piglit (the details) V}
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions to Piglit V }}}\\
+               \vspace{0.5cm}
+               \scriptsize{Same as with mesa many people helped us with the work on the
+               tests:}
+       \end{center}
+
+       \tiny{
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|}
+                               \hline 
+                               \rowcolor{paleaqua}
+                               Contributors & Contributions \\
+                               \hline 
+                               \hline 
+                               \rowcolor{platinum}
+                               Eleni Maria Stea & tests, Vulkan framework code \\
+                               \rowcolor{whitesmoke}
+                               Juan A. Suárez Romero & contributions to the framework, and
+                               vk-image-overwrite, testing \\
+                               \rowcolor{platinum}
+                               Tapani Pälli (\textit{many thanks!}) & reviews, testing and patches
+                               for the framework \\
+                               \rowcolor{whitesmoke}
+                               Bas Nieuwenhuizen & framework patch to support dedicated memory \\
+                               \rowcolor{platinum}
+                               Topi Pohjolainen & we've used some old patches of him as an example
+                               at the very beginning\\
+                               \hline 
+                       \end{tabularx}
+               \end{table}
+       }
+
+       \begin{itemize}
+               \item Also thanks to Germán Poo Caamaño who helped tidying up the
+                       initial mess of the Vulkan framework commits.
+               \item Again, this information was accurate when I prepared and
+                       pre-recorded the slides. Sorry if I am missing someone or something!
+       \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 \begin{frame}[fragile]
-       \frametitle{vk-image-overwrite}
-       \begin{block}{vk-image-overwrite}
-               \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
+       \frametitle{Piglit Results}
+       \begin{block}{\begin{center}Conclusions from running the tests:\end{center}}
+               \begin{itemize}
+                               \vspace{0.5cm}
+                       \item The feature seems to work well for the most common use cases in
+                               all mesa drivers mentioned before.\\
+                               \vspace{0.5cm}
+                       \item Depth and stencil buffer exchange is only supported on
+                               proprietary Nvidia drivers, unfortunately not on Mesa yet.\\
+                               \vspace{0.5cm}
+                       \item radeonsi needs some fixes to better support buffers and
+                               optimal tiling (WIP).
+                               \vspace{0.5cm}
+               \end{itemize}
        \end{block}
+
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+%\begin{frame}[fragile]
+%      \frametitle{vk-image-overwrite}
+%      \begin{block}{vk-image-overwrite}
+%              \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
+%      \end{block}
+%\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[Q \& A]{Questions}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 \begin{frame}
-       \frametitle{test}
-       foobar
+       \frametitle{Questions?}
+       {\fontsize{8}{7}\selectfont
+       \begin{center}
+               \begin{figure}
+               \includegraphics[scale=0.04]{data/qmark.png}
+               \end{figure}
+               \vspace{0.7cm}
+               {\large E-mail: {\color{coolblack}estea@igalia.com}}\\
+               {\large IRC/Freenode: {\color{coolblack}hikiko}}\\
+       \end{center}
+       }
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %\setbeamertemplate{bibliography entry title}{}
 %\setbeamertemplate{bibliography entry location}{}
 %\setbeamertemplate{bibliography entry note}{}
+\setbeamerfont{bibliography item}{size=\footnotesize}
+\setbeamerfont{bibliography entry author}{size=\footnotesize}
+\setbeamerfont{bibliography entry title}{size=\footnotesize}
+\setbeamerfont{bibliography entry year}{size=\footnotesize}
+\setbeamerfont{bibliography entry note}{size=\footnotesize}
+
 \begin{frame}[allowframebreaks]
-       \frametitle{References}
-       \bibliographystyle{plain}
+       \frametitle{Links}
+       \bibliographystyle{unsrt}
        \bibliography{bib/references.bib}
-       \tiny{
-               \nocite{*}
-       }
+       \nocite{*}
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section[Q \& A]{Questions and Answers}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-\begin{frame}
-       \frametitle{Questions?}
-       WIP
-\end{frame}
+\begin{frame}[plain]
+\begin{minipage}[b][0.6\textheight]{\linewidth}
+       \begin{picture}(0, 0)
+               \put(0, -76){%
+                       \pgfuseimage{igaliabglight}
+                       }
+                       \begin{minipage}[b][0.4\textheight]{\linewidth}
+                               \begin{figure}
+                                       \includegraphics[scale=0.6]{data/mesa.png}
+                               \end{figure}
+                       \end{minipage}
+               \put(-200, 0) {
+                       \hfill \huge{\textbf{\color{coolblack}Thank you!}}\\
+                       }
+       \end{picture}
+\end{minipage}
 
+\end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%