From: Eleni Maria Stea Date: Sun, 13 Sep 2020 11:25:57 +0000 (+0300) Subject: foobar X-Git-Url: http://git.mutantstargoat.com?p=fc2020;a=commitdiff_plain;h=f793e3de4d45fdd9753af5e8df7fd897f96bf93a foobar --- diff --git a/bib/references.bib b/bib/references.bib index 9080310..419b920 100644 --- a/bib/references.bib +++ b/bib/references.bib @@ -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} +} diff --git a/estea-xdc2020.tex b/estea-xdc2020.tex index c0b1285..0b95ed1 100644 --- a/estea-xdc2020.tex +++ b/estea-xdc2020.tex @@ -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} @@ -10,15 +11,35 @@ \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 @@ -58,10 +79,10 @@ \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}{ @@ -93,6 +114,10 @@ \usebeamerfont{author}{\insertauthor\par} \end{minipage} } + + \put(240, -138){ + \usebeamerfont{date}{\huge{{\insertdate}}\par} + } \end{picture} } @@ -101,11 +126,12 @@ \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 ]{\small{Eleni Maria Stea }\\\\\includegraphics{data/igalia.eps}} -\date{} +\date{XDC 2020} \AtBeginSection[] { @@ -134,132 +160,474 @@ \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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -268,24 +636,39 @@ %\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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%