nitpicks
[webkit_codecamp] / codecamp.tex
index c512f85..2e0a7d9 100644 (file)
 \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 <estea@igalia.com>]{\small{Eleni Maria Stea
 <estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
 \date{\tiny{WebKit Codecamp}}
 \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}
@@ -784,14 +783,16 @@ program}
                                \item We can export the file descriptor of one buffer from one
                                        driver and use it to access the buffer from the other
                                        driver.
-                               \item So we can export the FD that corresponds to the compositor
+                               \item So we can export the fd that corresponds to the compositor
                                        texture, import it in WebGL when we create the render target
                                        and when the WebGL texture is filled, the compositor texture
                                        will be also filled, as they share the backing storage!
                        \end{itemize}
                \end{center}
        \end{block}
-       \begin{block}{\scriptsize{EGL and GL extensions that can be used:}}
+
+       \begin{block}{\scriptsize{EGL and GL extensions that can be used for that
+        purpose:}}
                \begin{center}
                        \begin{itemize}
                                \item
@@ -825,10 +826,11 @@ program}
        \begin{block}{\scriptsize{I've written an example:}}
                \begin{center}
                        \begin{itemize}
-                               \item First using EGL!\\
+                               \item First using two native EGL contexts\\
                                        Blog post: \url{https://eleni.mutantstargoat.com/hikiko/egl-dma-1/} \\
                                        Code: \url{https://gistof.com/dma-egl-version}
-                               \item Then using a native EGL context and a context from ANGLE!\\
+                               \item Then using a native EGL context and a context created from
+                    ANGLE\\
                                        Blog post: \url{https://eleni.mutantstargoat.com/hikiko/angle-dma/}\\
                                        Code: \url{https://gistof.com/dmaangleeglversion}
                        \end{itemize}
@@ -843,9 +845,8 @@ program}
                        \begin{tabular}{l}
                                {\color{coolblack}Exporting a dma buffer from a texture
                                \texttt{texA}:}\\ 
-                               \\
                                \begin{adjustbox}{max width=\textwidth}
-                                       \adjustbox{valign=t}{\includegraphics[height=3.8cm]{data/dma_export_and_struct.png}}
+                                       \adjustbox{valign=t}{\includegraphics[height=4cm]{data/dma_export_and_struct.png}}
                                \end{adjustbox}\\
                        \end{tabular}
                \end{table}
@@ -887,6 +888,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}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -925,7 +959,6 @@ program}
 
         }
     \end{block}
-
 \vspace{0.3cm}
 \end{frame}
 
@@ -945,24 +978,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}
@@ -977,6 +993,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}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%