bib, makefile
[fc2020] / estea-xdc2020.tex
index 34a1964..c0b1285 100644 (file)
@@ -1,7 +1,8 @@
-\documentclass{beamer}
+\documentclass[usenames,dvipsnames]{beamer}
 \usepackage[font=small,skip=-1pt]{caption}
-\usepackage{listings}
 \usepackage{xcolor}
+\usepackage{caption}
+\usepackage{listings}
 \usepackage{graphicx}
 \usepackage{hyperref}
 \usepackage{comment}
 \usepackage{tgpagella}
 \usepackage[utf8]{inputenc}
 \usepackage{fontspec}
+\usepackage{tabularx}
+\usepackage{cite}
+
+\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{coolblack}{rgb}{0.0, 0.18, 0.39}
+
+\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} % 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}
 
-\usepackage{caption}
 \captionsetup[figure]{labelformat=empty}
 
 \addtobeamertemplate{headline}{}{\vskip2pt}
 \setbeamertemplate{blocks}[default]
 \setbeamercolor{block title}{fg=lightgray,bg=black}
 \title{\textbf{OpenGL and Vulkan Interoperability}}
-\author[Eleni Maria Stea]{\small{Eleni Maria Stea
+\author[Eleni Maria Stea <estea@igalia.com>]{\small{Eleni Maria Stea
 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
 \date{}
 
 \AtBeginSection[]
 {
-  \begin{frame}<beamer>
+  \begin{frame}
     \frametitle{Outline}
        \tableofcontents[currentsection]
   \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section[Introduction]{The concept behind OpenGL and Vulkan interoperability}
+\section[Introduction]{OpenGL and Vulkan interoperability extensions}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{frame}
-       \frametitle{Why interoperability?}
+       \frametitle{OpenGL and Vulkan Interoperability}
+
+       \center{\textbf{\color{coolblack}{INTEROPERABILITY}}}
+       \vspace{0.5cm}
 
-       The idea is to avoid unnecessary allocations and memory mappings when we
+       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:\\
-       \vspace{0.8cm}
-
-       {\fontsize{9}{9}\selectfont
-               \begin{itemize}\setlength\itemsep{0.8cm}
-                               \item {\color[rgb]{0, 0, 0.6} Allocate the resources (textures,
-                                       buffers) once.}
-                               \item {\color[rgb]{0, 0, 0.6} Reuse them several times from both
-                                       APIs.}
-                               \item {\color[rgb]{0, 0, 0.6} Synchronize the APIs access to the
+       \vspace{0.5cm}
+
+       {\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.}
                \end{itemize}
        }
 \end{frame}
 
 \begin{frame}
-       \frametitle{What's the alternative?}
-
-       Alternatively we would need to:\\
-       \vspace{0.8cm}
-
-       {\fontsize{9}{9}\selectfont
-               \begin{itemize}\setlength\itemsep{0.8cm}
-                               \item {\color[rgb]{0, 0, 0.6} Allocate resources of the same
-                                       size in both APIs.}
-                               \item {\color[rgb]{0, 0, 0.6} Map the Vulkan memory and copy the Vulkan object data to a an
-                                       OpenGL object data (and \textit{do all the necessary
-                                       conversions!}).}
-                               \item {\color[rgb]{0, 0, 0.6} Copy the data back after the process (and \textit{do all the
-                                       necessary conversions!}).}
-                               \item {\color[rgb]{0, 0, 0.6} Synchronize the access externally
-                                       (more complex).}
-               \end{itemize}
-       }
+       \frametitle{OpenGL extensions for interoperability}
+       
+       \center{\textbf{\color{coolblack}{OpenGL EXTENSIONS}}}
+       \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}
+                       }
+\end{itemize}
+}
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section[EXT\_external\_objects(\_fd)]{The required OpenGL extensions}
+\section[Interoperability on Mesa]{Additions to Mesa and Piglit}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{frame}
-       \frametitle{test}
-       foobar
+       \frametitle{Additions to Mesa}
+
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Igalia's contributions to Mesa
+       drivers}}}
+       }
+
+       \tiny{
+               \begin{table}
+                       \begin{tabularx}{\textwidth}{|l|X|l|}
+                               \hline 
+                               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 
+                       \end{tabularx}
+               \end{table}
+       }
+
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Thanks and Credits}}}
+       }
+
+       \tiny{
+               \begin{table}
+                       \begin{tabularx}{\textwidth}{|l|X|X|}
+                               \hline 
+                               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 
+                       \end{tabularx}
+               \end{table}
+       }
+\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.
+
+       \vspace{0.5cm}
+       WIP igalia intel logos
+\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[Piglit tests use cases]{Some use cases for Piglit}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{frame}
        \frametitle{test}
        foobar
 \end{frame}
-\section[Work and Status]{Igalia's work on mesa}
-\begin{frame}
-       \frametitle{test}
-       foobar
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[References]{References}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\setbeamertemplate{bibliography entry title}{}
+%\setbeamertemplate{bibliography entry location}{}
+%\setbeamertemplate{bibliography entry note}{}
+\begin{frame}[allowframebreaks]
+       \frametitle{References}
+       \bibliographystyle{plain}
+       \bibliography{bib/references.bib}
+       \tiny{
+               \nocite{*}
+       }
 \end{frame}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section[Q \& A]{Questions and Answers}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+\begin{frame}
+       \frametitle{Questions?}
+       WIP
+\end{frame}
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%