X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=codecamp.tex;h=24cfebb7a98599cca33b43a9ecdb5b55441c50d5;hb=70b34c2424b01ce1fb33f8eed9acf1f09bd1be9e;hp=a89b2a92cac58e7a31f4104849251cd671b8763c;hpb=00fff1064313e541fe72c536c8304788a9d4c8a2;p=webkit_codecamp diff --git a/codecamp.tex b/codecamp.tex index a89b2a9..24cfebb 100644 --- a/codecamp.tex +++ b/codecamp.tex @@ -129,7 +129,7 @@ \setbeamertemplate{blocks}[default] \setbeamercolor{block title}{fg=amber,bg=black} -\title{\textbf{Sharing texture data between drivers}} +\title{\textbf{Sharing texture data across EGL drivers}} \author[Eleni Maria Stea ]{\small{Eleni Maria Stea }\\\\\includegraphics{data/igalia.eps}} \date{\tiny{WebKit Codecamp}} @@ -166,7 +166,7 @@ \end{comment} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section[Introduction]{Introduction: Using ANGLE in WebGL2} +\section[Introduction]{Introduction: Using ANGLE in WebGL2 (WebKit)} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[fragile,c] @@ -309,17 +309,16 @@ program} \begin{center} \scriptsize{ I've ran my experiments using test programs and ANGLE,\\ - and I had to - \textbf{\color{mediumred-violet}modify the default set up} to - debug/explore ANGLE calls with GDB: + and I had to modify the default set up to step into ANGLE calls with GDB: } \end{center} \vspace{0.1cm} - \setbeamertemplate{blocks}[rounded] - - \begin{block}{\footnotesize{\textbf{Problems when building ANGLE:}}}\scriptsize{\texttt{ + \setbeamertemplate{itemize/enumerate body begin}{\scriptsize} + \begin{block}{\scriptsize{Things that need attention when building ANGLE for + debugging:}}\scriptsize{ + \vspace{0.2cm} \begin{itemize} \itemsep0.1cm \color{coolblack} @@ -330,7 +329,7 @@ program} \item {{\textbf{dwarf5} is not fully implemented on GDB, and so it's impossible to step without errors when it's enabled.}} \item {\textbf{Debugging symbols} aren't enabled by default.} - \end{itemize}}} + \end{itemize}} \vspace{0.2cm} \end{block} @@ -340,8 +339,8 @@ program} \setbeamertemplate{itemize item}[circle] \begin{itemize} \item {\textbf{Blog post} on how to set up - \textbf{\color{mediumred-violet}{ANGLE}} and \textbf{\color{mediumred-violet}{GDB}} for debugging: \url{https://eleni.mutantstargoat.com/hikiko/debug-angle/}} - \item {\textbf{Gist} with the \textbf{\color{mediumred-violet}{GN args}} + {\color{black}{ANGLE}} and {\color{black}{GDB}} for debugging: \url{https://eleni.mutantstargoat.com/hikiko/debug-angle/}} + \item {\textbf{Gist} with the {\color{black}{GN args}} I've used: \url{https://gistof.com/gnargs}} \end{itemize}} \vspace{0.2cm} @@ -357,7 +356,6 @@ program} \setbeamertemplate{itemize/enumerate subbody begin}{\tiny} \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny} \setbeamertemplate{itemize items}[triangle] - \setbeamertemplate{blocks}[rounded] \begin{center} \textbf{\color{coolblack}First Test} @@ -373,7 +371,7 @@ program} padding=1ex}{\includegraphics[height=1.5cm]{data/angle_egl.png}} \end{center} \vspace{-0.1cm} - \begin{block}{\footnotesize{Things I had to take care of:}} + \begin{block}{\footnotesize{Some parts that needed attention:}} \begin{itemize} \item {Set ANGLE \textbf{library paths} in Makefile and link with native system EGL.} @@ -733,7 +731,7 @@ program} \setbeamercolor{block body}{bg=white} \setbeamercolor{block title}{bg=white, fg=coolblack} \begin{block}{\scriptsize{There is a Linux kernel framework that can be used for - content sharing between different Linux drivers!}} + content sharing across different Linux drivers!}} \vspace{-0.1cm} \begin{table}[t] @@ -745,21 +743,22 @@ program} \end{tabular} \end{table} - \textbf{\scriptsize{\color{coolblack}A few things that need our attention:}}\\ + \textbf{\scriptsize{\color{coolblack}A few interesting things about + content sharing with dma buffers:}}\\ \vspace{0.1cm} \setbeamertemplate{itemize/enumerate body begin}{\tiny} \begin{itemize} \item There are {\color{coolblack}EGL and OpenGL/GLESv2 - extensions} to make this content sharing easier! - \item It's {\color{coolblack}driver independent}! + extensions} to make it easier! + \item It's a {\color{coolblack}driver independent} method! \item It works with {\color{coolblack}multiple processes}! \item As long as ANGLE can expose the required extensions to - import a dma\_buf file descriptor this method is + import a dma\_buf file descriptor this method is also {\color{coolblack}"ANGLE backend independent"}! - \item Works {\color{coolblack}only on Linux}... but in case of - WPE we won't need to support other systems! (Žan Doberšek) + \item DMA buffers are a {\color{coolblack}Linux-only} thing... + but we won't need to support other systems! (Žan Doberšek) \end{itemize} \end{block} \end{center} @@ -886,6 +885,39 @@ program} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} + \frametitle{Test program} + + \begin{block}{\scriptsize{An exporter-importer that uses ANGLE and native + EGL}} + \setbeamertemplate{itemize/enumerate body begin}{\scriptsize} + \begin{itemize} + \itemsep0.3cm + \itemsep0.2cm + \item First context is EGL/OpenGL like the one in main graphics + pipeline. + \item Second is ANGLE with EGL/GLESv2 backend like the one in + WebGL2. + \item EGL/OpenGL context creates an empty texture and exports the dma\_buf + fd and all other information about the buffer. + \item ANGLE context creates another empty texture using the same + dma\_buf and the import mechanism. + \item ANGLE context fills the emty ANGLE texture. + \item EGL/OpenGL context displays the previously empty OpenGL/EGL + texture. + \item EGL/OpenGL texture contains what ANGLE texture had. + \item \textbf{We shared the ANGLE data without copying them!} + \end{itemize} + + \end{block} + \vspace{0.2cm} + \scriptsize{ + \begin{center} + \textbf{\color{coolblack}Check the blog posts for more details!} + \end{center} + } +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -924,7 +956,6 @@ program} } \end{block} - \vspace{0.3cm} \end{frame} @@ -944,24 +975,7 @@ program} \frametitle{WIP WebKit:} \center{\normalsize{\textbf{\color{coolblack}{Ongoing work on WebKit}}}} - \vspace{0.3cm} - - {\footnotesize{ - \begin{block}{DONE/WIP/TODO} - \begin{itemize} - \item{Use the right CMake options (one can't simply enable - \texttt{USE\_ANGLE\_WEBGL} ☺): - \color{coolblack}{\textbf{FIXED }}} - \item{There were compile errors when ANGLE was used: - \color{coolblack}{\textbf{FIXED/Pending to send the patches}}} - \item{Link errors when ANGLE is used: - \color{coolblack}{\textbf{WIP/Partially FIXED}}} - \item{Copy replacement: \color{coolblack}{\textbf{WIP/TODO}}} - \end{itemize} - \end{block} - }} - - \vspace{0.2cm} + \vspace{0.1cm} \begin{center} \setbeamertemplate{itemize/enumerate body begin}{\scriptsize} \setbeamertemplate{itemize/enumerate subbody begin}[circle]{\tiny} @@ -976,6 +990,22 @@ program} something else (libgbm? copying?)} \end{itemize} \end{center} + \vspace{0.05cm} + {\scriptsize{ + \begin{block}{DONE/WIP/TODO} + \begin{itemize} + \item{Use the right CMake options (one can't simply enable + \texttt{USE\_ANGLE\_WEBGL}!): + \color{coolblack}{\textbf{FIXED }}} + \item{There were compile errors when ANGLE was used: + \color{coolblack}{\textbf{FIXED/Pending to send the patches}}} + \item{Link errors when ANGLE is used: + \color{coolblack}{\textbf{WIP/Partially FIXED}}} + \item{Copy replacement: \color{coolblack}{\textbf{WIP/TODO}}} + \end{itemize} + \end{block} + }} + \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%