1 \documentclass[usenames,dvipsnames]{beamer}
2 \usepackage[font=small,skip=-1pt]{caption}
10 \usepackage{tgpagella}
11 \usepackage[utf8]{inputenc}
16 \definecolor{mGreen}{rgb}{0,0.6,0}
17 \definecolor{mGray}{rgb}{0.5,0.5,0.5}
18 \definecolor{mPurple}{rgb}{0.58,0,0.82}
19 \definecolor{bgcolor}{rgb}{0.8,0.8,0.8}
20 \definecolor{afblue}{rgb}{0.26, 0.44, 0.56}
21 \definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
23 \lstdefinestyle{CStyle}{
24 language=C++, % choose the language of the code
25 % basicstyle=\footnotesize, % the size of the fonts that are used for the code
26 basicstyle=\tt\color{afblue},
27 breakatwhitespace=false,
29 backgroundcolor=\color{bgcolor}, % choose the background color. You must add \usepackage{color}
30 showspaces=false, % show spaces adding particular underscores
31 showstringspaces=false, % underline spaces within strings
32 showtabs=false, % show tabs within strings adding particular underscores
33 frame=single, % adds a frame around the code
34 tabsize=2, % sets default tabsize to 2 spaces
35 captionpos=b, % sets the caption-position to bottom
36 breaklines=true, % sets automatic line breaking
37 breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
38 commentstyle=\color{mGreen},
39 keywordstyle=\color{magenta},
40 stringstyle=\color{mPurple},
41 rulesepcolor=\color{gray},
42 rulecolor=\color{black},
45 \setmainfont{Noto Sans} % substitute with any font that exists on your system
46 \setsansfont{Noto Sans} % substitute with any font that exists on your system
47 \setmonofont{Noto Sans Mono Medium} % substitute with any font that exists on your system
50 \useoutertheme{infolines}
53 \captionsetup[figure]{labelformat=empty}
55 \addtobeamertemplate{headline}{}{\vskip2pt}
56 \addtobeamertemplate{headline}{}{%
57 \begin{textblock*}{5mm}(.9\textwidth,-0.6cm)
58 \includegraphics[height=0.67cm]{data/igalia-logo.png}
61 \definecolor{links}{rgb}{0, 0.6, 0}
62 \hypersetup{colorlinks,linkcolor=,urlcolor=links}
64 %\pgfdeclareimage[height=\paperheight]{igaliabg}{data/igalia_bg_light.eps}
65 \pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}
67 %\setbeamertemplate{title page}{
68 % \begin{picture}(-90, 180)
70 % \pgfuseimage{igaliabg}
74 % \begin{minipage}[b][36mm][t]{240mm}
75 % \usebeamerfont{title}{\inserttitle\par}
76 % \usebeamerfont{author}{\insertauthor\par}
77 % \usebeamerfont{title}{\insertinstitute\par}
83 \setbeamertemplate{navigation symbols}{}
84 \setbeamertemplate{title page}{
87 \pgfuseimage{igaliabg}
91 \begin{minipage}[b][38mm][t]{220mm}
92 \usebeamerfont{title}{\inserttitle\par}
93 \usebeamerfont{author}{\insertauthor\par}
99 \setbeamertemplate{itemize items}[triangle]
100 \setbeamertemplate{itemize subitem}[circle]
101 \setbeamerfont{frametitle}{size=\small}
103 \setbeamertemplate{blocks}[default]
104 \setbeamercolor{block title}{fg=lightgray,bg=black}
105 \title{\textbf{OpenGL and Vulkan Interoperability}}
106 \author[Eleni Maria Stea <estea@igalia.com>]{\small{Eleni Maria Stea
107 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
114 \tableofcontents[currentsection]
118 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
131 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
134 \section[Introduction]{OpenGL and Vulkan interoperability extensions}
135 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
138 \frametitle{OpenGL and Vulkan Interoperability}
140 \center{\textbf{\color{coolblack}{INTEROPERABILITY}}}
143 The idea is to avoid unnecessary allocations and conversions when we
144 exchange texture and buffer data across APIs.\\
146 Interoperability extensions allow us to:\\
149 {\fontsize{10}{10}\selectfont
150 \begin{itemize}\setlength\itemsep{0.5cm}
151 \item {\color{afblue} \textbf{Allocate} the resources (textures,
152 buffers) \textbf{once} from Vulkan.}
153 \item {\color{afblue} \textbf{Reuse} them \textbf{several
154 times} from both APIs.}
155 \item {\color{afblue} \textbf{Synchronize} the APIs access to the
162 \frametitle{OpenGL extensions for interoperability}
164 \center{\textbf{\color{coolblack}{OpenGL EXTENSIONS}}}
167 {\fontsize{10}{10}\selectfont
168 \begin{itemize}\setlength\itemsep{0.5cm}
169 \item {\color{afblue}\textbf{EXT\_external\_object} extension:}
171 \item provides the functions to create GL objects, textures and buffers
173 \item provides the functions to create GL semaphores that
174 correspond to Vulkan ones.
175 \item provides the functions for synchronization.
177 \item {\color{afblue}\textbf{EXT\_external\_objects\_fd}
179 {\fontsize{7}{6}\selectfont
181 \item provides a function to import a file descriptor to the Vulkan
183 \item provides a function to import a file descriptor to the Vulkan semaphores.
190 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191 \section[Interoperability on Mesa]{Additions to Mesa and Piglit}
192 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
195 \frametitle{Additions to Mesa}
198 \normalsize{\textbf{\color{coolblack}{Igalia's contributions to Mesa
204 \begin{tabularx}{\textwidth}{|l|X|l|}
206 Driver & Igalia's Contributions & Status \\
208 iris & implemented EXT\_external\_objects, EXT\_external\_objects\_fd & under review \\
209 freedreno & implemented EXT\_external\_objects,
210 EXT\_external\_objects\_fd & upstream \\
211 radeonsi & fixes to the already implemented feature & under
213 i965 & helped with the review & under review\\
220 \normalsize{\textbf{\color{coolblack}{Thanks and Credits}}}
225 \begin{tabularx}{\textwidth}{|l|X|X|}
227 Driver & Patches & Reviews, Comments, Advice\\
229 iris & Juan A. Juarez Romero, Eleni Maria Stea, Tapani Palli,
230 Eduardo Lima Mitev, zzzoon & collab, tapani, jason klp \\
231 freedreno & foo & bar\\
232 radeonsi & foo & bar\\
241 \frametitle{Piglit tests cases}
243 As there were no CTS for these extensions and we needed to test
244 mesa, we've written some Piglit tests with simple use cases of the
248 WIP igalia intel logos
251 \begin{frame}[fragile]
252 \frametitle{vk-image-overwrite}
253 \begin{block}{vk-image-overwrite}
254 \lstinline[language=C++, style=CStyle]{glCreateMemoryObjectsEXT(1, gl_mem_obj); }
258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
266 \section[References]{References}
267 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
268 %\setbeamertemplate{bibliography entry title}{}
269 %\setbeamertemplate{bibliography entry location}{}
270 %\setbeamertemplate{bibliography entry note}{}
271 \begin{frame}[allowframebreaks]
272 \frametitle{References}
273 \bibliographystyle{plain}
274 \bibliography{bib/references.bib}
280 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
281 \section[Q \& A]{Questions and Answers}
282 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
285 \frametitle{Questions?}
289 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
291 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%