\documentclass[usenames,dvipsnames]{beamer}
\usepackage[font=small,skip=-1pt]{caption}
\usepackage{xcolor}
\usepackage{color, colortbl}
\usepackage{caption}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{comment}
\usepackage{textpos}
\usepackage{tgpagella}
\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\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.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
%	basicstyle=\footnotesize,       % the size of the fonts that are used for the code
	basicstyle=\tt\color{afblue},
    breakatwhitespace=false,
    breaklines=true,
	backgroundcolor=\color{bgcolor},  % choose the background color. You must add \usepackage{color}
	showspaces=false,               % show spaces adding particular underscores
	showstringspaces=false,         % underline spaces within strings
	showtabs=false,                 % show tabs within strings adding particular underscores
	frame=single,           % adds a frame around the code
	tabsize=2,          % sets default tabsize to 2 spaces
	captionpos=b,           % sets the caption-position to bottom
	breaklines=true,        % sets automatic line breaking
	breakatwhitespace=false,    % sets if automatic breaks should only happen at whitespace
    commentstyle=\color{mGreen},
    keywordstyle=\color{magenta},
    stringstyle=\color{mPurple},
	rulesepcolor=\color{gray},
    rulecolor=\color{black},
}

\setmainfont{Noto Sans} % substitute with any font that exists on your system
\setsansfont{Noto Sans} % substitute with any font that exists on your system
\setmonofont{Noto Sans Mono Medium} % substitute with any font that exists on your system

\usetheme{Warsaw}
\useoutertheme{infolines}
\usecolortheme{crane}

\captionsetup[figure]{labelformat=empty}

\addtobeamertemplate{headline}{}{\vskip2pt}
\addtobeamertemplate{headline}{}{%
	\begin{textblock*}{5mm}(.9\textwidth,-0.6cm)
	\includegraphics[height=0.67cm]{data/igalia-logo.png}
\end{textblock*}}

\definecolor{links}{rgb}{0.1, 0.3, 0.6}
\hypersetup{colorlinks,linkcolor=,urlcolor=links}

\pgfdeclareimage[height=\paperheight]{igaliabglight}{data/igalia_bg_light.eps}
\pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}

%\setbeamertemplate{title page}{
%        \begin{picture}(-90, 180)
%			\put(-200, -74){%
%                \pgfuseimage{igaliabg}
%            }
%
%            \put(55,19){%
%				\begin{minipage}[b][36mm][t]{240mm}
%                    \usebeamerfont{title}{\inserttitle\par}
%                    \usebeamerfont{author}{\insertauthor\par}
%                    \usebeamerfont{title}{\insertinstitute\par}
%                \end{minipage}
%            }
%		\end{picture}
%}

\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{title page}{
        \begin{picture}(0,0)
            \put(-30,-164){%
                \pgfuseimage{igaliabg}
            }

            \put(0,-110.7){%
                \begin{minipage}[b][38mm][t]{220mm}
                    \usebeamerfont{title}{\inserttitle\par}
                    \usebeamerfont{author}{\insertauthor\par}
                \end{minipage}
            }

			\put(240, -138){
				\usebeamerfont{date}{\huge{{\insertdate}}\par}
				}
		\end{picture}
}

\setbeamertemplate{itemize items}[triangle]
\setbeamertemplate{itemize subitem}[circle]
\setbeamerfont{frametitle}{size=\small}

\setbeamertemplate{blocks}[default]
\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{XDC 2020}

\AtBeginSection[]
{
  \begin{frame}
    \frametitle{Outline}
	\tableofcontents[currentsection]
  \end{frame}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}[plain]
\titlepage
\end{frame}

\begin{frame}
	\frametitle{Outline}
	\tableofcontents
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section[Introduction]{OpenGL interoperability extensions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}[fragile,c]
	\frametitle{Interoperability Concept}

	\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.5cm}
	\begin{tabularx}{\textwidth}{X}
		\rowcolor{coolblack}
		\multicolumn{1}{c}{
		\color{paleaqua}{EXT\_external\_objects(\_fd) extensions enable:}
		}\\
		\rowcolor{platinum}
		\\
		\rowcolor{platinum}
		\small{· \color{coolblack}{\textbf{Allocation} of resources (textures,
		buffers) from Vulkan and {\textbf{sharing}} of those resources from both APIs}
		}
		\\
		\rowcolor{platinum}
		\\
		\rowcolor{platinum}
		\small{· \color{coolblack}{\textbf{Synchronization} of the access to
		shared resources between APIs.}}\\
		\rowcolor{platinum}
		\\
	\end{tabularx}

		\vspace{0.5cm}
	\end{center}
	\footnotesize{\textbf{Example:} a VR compositor where the left and right eye
	images are allocated and displayed by Vulkan but their contents are filled by
	OpenGL processes.}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}[fragile]
	\frametitle{OpenGL extensions for interoperability on Linux}

	\center{\textbf{\color{coolblack}{OpenGL Extensions (Linux)}}}
	\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]

	\begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects\_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\_objects
		(EXT\_memory\_object, EXT\_semaphore)}:}}
		\begin{itemize}
			\item enables an OpenGL application to
				create OpenGL objects corresponding to Vulkan objects (textures,
				buffers, semaphores) and synchronize access to shared objects
				across APIs
			\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{Igalia's contributions}

	\setbeamertemplate{blocks}[rounded]
	\center{
		\normalsize{\textbf{\color{coolblack}{Work on the feature}}}
		}

	\vspace{0.5cm}

	\begin{block}{Mesa}
		\footnotesize{
			Igalia contributed to the implementation of the interoperability
			extensions for different {\color{deepjunglegreen}\textbf{Mesa
			drivers}}.
			}
	\end{block}

	\vspace{0.3cm}

	\begin{block}{Piglit (drivers testing framework)}
		\footnotesize{
			As there were \textbf{no conformance tests} available for the
			extensions, we've written a Vulkan framework for
			{\color{coolblack}\textbf{Piglit}} and Vulkan/GL tests that cover
			some common
			EXT\_external\_objects(\_fd) use cases.
			}
	\end{block}
\end{frame}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{frame}
	\frametitle{Additions to Mesa (the details)}

	\center{
		\normalsize{\textbf{\color{coolblack}{Contributions to Mesa
	drivers}}}
	}
	\tiny{
		\begin{table}[t]
			\begin{tabularx}{\textwidth}{|l|X|l|}
				\hline
				\rowcolor{paleaqua}
				Driver & Igalia's Contributions & Status \\
				\hline
				\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}{Contributors, reviewers,
		people who helped!}}}
	}

	\tiny{
		\begin{table}[ht]
			\begin{tabularx}{\textwidth}{|l|X|X|}
				\hline
				\rowcolor{paleaqua}
				Driver & Patches & Reviews, Comments, Advice\\
				\hline
				\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}[fragile]
	\frametitle{Additions to Piglit (the details) I}

	\begin{center}
		\normalsize{\textbf{\color{coolblack}{Contributions to Piglit I }}}
	\end{center}

	\tiny{
		\begin{center}\textbf{Reusing color images:}\end{center}
			\vspace{-0.3cm}
		\begin{table}[t]
			\begin{tabularx}{\textwidth}{|l|X|c|l|}
				\hline
				\rowcolor{paleaqua}
				Test name & Description
				& Output & Status\\
				\hline
				\hline
				\rowcolor{platinum}
				vk-image-overwrite &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:} allocates images of
						different formats and tiling modes
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} fills them with
						green
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}} green screen
				\end{itemize}
				&
				\adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
				\hline
				\rowcolor{whitesmoke}
				vk-image-display &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:} creates
						an image and fills it with colored bars
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} draws
						the image on screen using semaphores to synchronize
						access
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						a stripped image on screen
				\end{itemize}
				&
				\adjustbox{valign=t, margin=1ex,
				padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
				& \cellcolor{green}{upstream}\\
				\hline
				\rowcolor{platinum}
				vk-image-display-overwrite &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:} creates
						an image and fills it
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						overwrites that image with another stripped pattern
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						reads back the contents of the image
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
					the modified contents to be read back	
				\end{itemize}
				&
				\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 & Description
				& Output & Status\\
				\hline
				\hline
				\rowcolor{platinum}
				vk-depth-display &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						creates a depth buffer pattern
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						draws a fullscreen quad at a greater depth
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						quad partially obscured
				\end{itemize}
				&
				\adjustbox{valign=t, margin=1ex,
				padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
				& \cellcolor{babypink}{under review}\\
				\hline
				\rowcolor{whitesmoke}
				vk-stencil-display &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						creates a pattern in the stencil buffer
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						draws a blue fullscreen quad with stencil testing
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						quad masked by stencil pattern
				\end{itemize}
				&
				\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}[tc]
			\begin{tabularx}{\textwidth}{|l|X|c|l|}
				\hline
				\rowcolor{paleaqua}
				Test name & Description
				& Output & Status\\
				\hline
				\hline
				\rowcolor{platinum}
				vk-buf-exchange &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						creates and fills an image with color bars and copies
						its content to a buffer
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						uses the buffer as pixel storage for a texture and
						displays it
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						colored bars on screen
				\end{itemize}
				&
				\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 &
				Same as above and:
				\begin{itemize}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						attempts to overwrite the buffer
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						error is generated, the buffer remains unchanged
				\end{itemize}
				 &
				\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 & Description
				& Output & Status\\
				\hline
				\hline
				\rowcolor{platinum}
				vk-vert-buf-update-errors &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						creates a vertex buffer and fills it with only the odd
						quads of a chess board pattern
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						clears the screen to red and draws the vertex buffer in
						blue
					\item[\textbullet] \textbf{\color{coolblack}OpenGL:}
						attempts to overwrite the VBO
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						a red-blue chess board pattern on screen and an invalid
						operation error is generated
				\end{itemize}
				&
				\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 &
				\begin{itemize}
					\vspace{-0.3cm}
				\itemsep0cm
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						same as above
					\item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
						same as above minus the invalid overwrite test
					\item[\textbullet] \textbf{\color{coolblack}Vulkan:}
						reuses the VBO in a renderpass to draw the chess board
					\item[\textbullet] \textbf{\color{coolblack}{Expectation:}}
						chessboard on screen
				\end{itemize}
				&
				\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{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{\color{coolblack}{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{Piglit Results}
	\begin{block}{\begin{center}Conclusions from running the tests:\end{center}}
		\begin{itemize}
				\vspace{0.5cm}
			\item Most of the new Piglit tests are passing in the mesa drivers
				mentioned before (iris, freedreno, radeonsi, i965).\\
				\vspace{0.5cm}
			\item Unfortunately Mesa does not yet support the depth and stencil
				buffer exchange. The only implementation I 've found that currently
				supports this feature is the Nvidia proprietary driver.\\
				\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{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}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section[References]{References}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\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{Links}
	\bibliographystyle{unsrt}
	\bibliography{bib/references.bib}
	\nocite{*}
\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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
