+ \begin{center}
+ \normalsize{\textbf{\color{coolblack}{Contributions to Piglit I }}}
+ \end{center}
+
+ \tiny{
+ \begin{center}\textbf{Reusing color images:}\end{center}
+ \begin{table}[t]
+ \begin{tabularx}{\textwidth}{|l|X|c|l|}
+ \hline
+ \rowcolor{paleaqua}
+ Test name & Use case
+ & Output & Status\\
+ \hline
+ \hline
+ \rowcolor{platinum}
+ vk-image-overwrite &
+ The test allocates images of different formats and
+ tiling modes using Vulkan and fills their pixels using OpenGL.
+ &
+ \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
+ \hline
+ \rowcolor{whitesmoke}
+ vk-image-display &
+ The test allocates a Vulkan image and renders a
+ pattern to it using Vulkan. Then it displays it using OpenGL.
+ The test uses semaphores to synchronize the GL, Vulkan access to
+ the texture.\vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+ & \cellcolor{green}{upstream}\\
+ \hline
+ \rowcolor{platinum}
+ vk-image-display-overwrite &
+ Similar to the previous ones, but the Vulkan texture data are
+ overwritten again with OpenGL and then read back from Vulkan. &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/image_display_overwrite.png}}
+ & \cellcolor{green}{upstream}\\
+ \hline
+ \end{tabularx}
+ \end{table}
+ }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+ \frametitle{Additions to Piglit (the details) II}
+
+ \begin{center}
+ \normalsize{\textbf{\color{coolblack}{Contributions to Piglit II }}}
+ \end{center}
+
+ \tiny{
+ \begin{center}\textbf{Reusing the depth and stencil buffer:}\end{center}
+ \begin{table}[t]
+ \begin{tabularx}{\textwidth}{|l|X|c|l|}
+ \hline
+ \rowcolor{paleaqua}
+ Test name & Use case
+ & Output & Status\\
+ \hline
+ \hline
+ \rowcolor{platinum}
+ vk-depth-display & A Vulkan quad is rendered at a specific depth
+ \texttt{d1}. The Vulkan depth buffer is used as a depth attachment while rendering
+ a blue quad in an OpenGL FBO with the depth test enabled in a
+ depth \texttt{d2 < d1}. We see the framebuffer color where
+ \texttt{imported\_depth > depth}.
+ \vspace{0.3cm}
+ &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
+ & \cellcolor{babypink}{under review}\\
+ \hline
+ \rowcolor{whitesmoke}
+ vk-stencil-display & Similarly, a small quad is rendered with
+ Vulkan and the stencil test enabled. It is
+ then imported and used by OpenGL that renders a fullscreen quad
+ with the stencil test enabled. Pixels that pass the stencil test
+ have the quad color and the rest the framebuffer
+ color.
+ \vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/stencil.png}}
+ & \cellcolor{babypink}{under review}\\
+ \hline
+ \end{tabularx}
+ \end{table}
+ }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+ \frametitle{Additions to Piglit (the details) III}
+
+ \begin{center}
+ \normalsize{\textbf{\color{coolblack}{Contributions to Piglit III }}}
+ \end{center}
+
+ \tiny{
+ \begin{center}\textbf{Reusing a pixel buffer:}\end{center}
+
+ \begin{table}[t]
+ \begin{tabularx}{\textwidth}{|l|X|l|l|}
+ \hline
+ \rowcolor{paleaqua}
+ Test name & Use case
+ & Output & Status\\
+ \hline
+ \hline
+ \rowcolor{platinum}
+ vk-buf-exchange &
+ The test renders an image and copies it to a buffer using
+ Vulkan. Then, the buffer is imported in OpenGL and is used as
+ pixel storage for an OpenGL texture. OpenGL renders the texture
+ and we validate that it contains the pattern that was rendered
+ by Vulkan. \vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+ & \cellcolor{green}{upstream}\\
+ \hline
+ \rowcolor{whitesmoke}
+ vk-pix-buf-update-errors &
+ The test is similar to the previous one with the difference that
+ we attempt to overwrite the buffer using BufferSubData. We
+ validate that an invalid operation error is generated and the
+ contents of the buffer remain unchanged after the
+ attempt.\vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+ & \cellcolor{blond}{work in progress}\\
+ \hline
+ \end{tabularx}
+ \end{table}
+ }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+ \frametitle{Additions to Piglit (the details) IV}
+
+ \begin{center}
+ \normalsize{\textbf{\color{coolblack}{Contributions to Piglit IV }}}
+ \end{center}
+
+ \tiny{
+ \begin{center}\textbf{Reusing a vertex buffer:}\end{center}
+ \begin{table}[t]
+ \begin{tabularx}{\textwidth}{|l|X|l|l|}
+ \hline
+ \rowcolor{paleaqua}
+ Test name & Use case
+ & Output & Status\\
+ \hline
+ \hline
+ \rowcolor{platinum}
+ vk-vert-buf-update-errors &
+ A Vulkan vertex buffer is allocated and filled with data so that
+ the vertices create quads that follow a chess pattern. This
+ vertex buffer is used by OpenGL that clears the screen with red
+ and paints the pixels blue.
+ We validate that the geometry is correct and that we can't
+ overwrite it using \texttt{glBufferSubdata}. \vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+ & \cellcolor{blond}{work in progress}\\
+ \hline
+ \rowcolor{whitesmoke}
+ vk-vert-buf-reuse &
+ Similar to the previous test, but the Vulkan vertex buffer is
+ used in a Vulkan renderpass afterwards to make sure Vulkan can
+ read back and reuse the vertex buffer.\vspace{0.3cm} &
+ \adjustbox{valign=t, margin=1ex,
+ padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+ &
+ \cellcolor{blond}{work in progress}\\
+ \hline
+ \end{tabularx}
+ \end{table}
+ }