From 41c538cf7a1fa0bcc5bb11c58ee0691d74460ebe Mon Sep 17 00:00:00 2001 From: Eleni Maria Stea Date: Mon, 31 Aug 2020 12:29:44 +0300 Subject: [PATCH] bib, makefile --- Makefile | 9 +++ bib/references.bib | 7 ++ estea-xdc2020.tex | 205 ++++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 176 insertions(+), 45 deletions(-) create mode 100644 Makefile create mode 100644 bib/references.bib diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..cdb0834 --- /dev/null +++ b/Makefile @@ -0,0 +1,9 @@ +estea-xdc2020.pdf:estea-xdc2020.tex bib/references.bib + xelatex estea-xdc2020.tex + bibtex estea-xdc2020 + xelatex estea-xdc2020.tex + xelatex estea-xdc2020.tex + +.PHONY: clean +clean: + rm -f *.aux *.bbl *.blg *.log *.nav *.out *.snm *.toc *.vrb *.pdf diff --git a/bib/references.bib b/bib/references.bib new file mode 100644 index 0000000..9080310 --- /dev/null +++ b/bib/references.bib @@ -0,0 +1,7 @@ +@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}, + year = {July 18, 2018} +} diff --git a/estea-xdc2020.tex b/estea-xdc2020.tex index 34a1964..c0b1285 100644 --- a/estea-xdc2020.tex +++ b/estea-xdc2020.tex @@ -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} @@ -9,15 +10,46 @@ \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} @@ -71,13 +103,13 @@ \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 ]{\small{Eleni Maria Stea }\\\\\includegraphics{data/igalia.eps}} \date{} \AtBeginSection[] { - \begin{frame} + \begin{frame} \frametitle{Outline} \tableofcontents[currentsection] \end{frame} @@ -99,78 +131,161 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- 1.7.10.4