wtf
authorEleni Maria Stea <estea@igalia.com>
Wed, 28 Oct 2020 10:06:06 +0000 (12:06 +0200)
committerEleni Maria Stea <estea@igalia.com>
Wed, 28 Oct 2020 10:06:06 +0000 (12:06 +0200)
estea-fosscomm2020.tex [new file with mode: 0644]

diff --git a/estea-fosscomm2020.tex b/estea-fosscomm2020.tex
new file mode 100644 (file)
index 0000000..e1b2b7b
--- /dev/null
@@ -0,0 +1,780 @@
+\documentclass[usenames,dvipsnames]{beamer}
+\usepackage[font=small,skip=-1pt]{caption}
+\usepackage{xcolor}
+\usepackage{color, colortbl}
+\usepackage{caption}
+\usepackage{listings}
+\usepackage{graphicx}
+\usepackage{hyperref}
+\usepackage{comment}
+\usepackage{textpos}
+\usepackage{tgpagella}
+\usepackage[utf8]{inputenc}
+\usepackage{fontspec}
+\usepackage{tabularx, array, booktabs}
+\usepackage{cite}
+\usepackage{verbatim}
+\usepackage{comment}
+\usepackage{adjustbox}
+
+\newcommand\topalign[1]{%
+  \setbox0\hbox{#1}%
+  \raisebox{\dimexpr-\ht0+\dp0\relax}{\usebox0}}
+
+\definecolor{blond}{rgb}{0.98, 0.94, 0.75}
+\definecolor{beige}{rgb}{0.96, 0.96, 0.86}
+\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.46, 0.64, 0.76}
+\definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
+\definecolor{paleaqua}{rgb}{0.74, 0.83, 0.9}
+\definecolor{platinum}{rgb}{0.9, 0.89, 0.89}
+\definecolor{whitesmoke}{rgb}{0.96, 0.96, 0.96}
+\definecolor{carolinablue}{rgb}{0.6, 0.73, 0.89}
+\definecolor{amber}{rgb}{1.0, 0.75, 0.0}
+\definecolor{deepjunglegreen}{rgb}{0.0, 0.29, 0.29}
+\definecolor{mediumred-violet}{rgb}{0.73, 0.2, 0.52}
+\definecolor{babypink}{rgb}{0.96, 0.76, 0.76}
+\definecolor{beaublue}{rgb}{0.74, 0.83, 0.9}
+\definecolor{bananayellow}{rgb}{1.0, 0.88, 0.21}
+\definecolor{bananamania}{rgb}{0.98, 0.91, 0.81}
+
+\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 Serif} % 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
+
+\usetheme{Warsaw}
+\useoutertheme{infolines}
+\usecolortheme{crane}
+
+\captionsetup[figure]{labelformat=empty}
+
+\addtobeamertemplate{headline}{}{\vskip2pt}
+\addtobeamertemplate{headline}{}{%
+       \begin{textblock*}{5mm}(.9\textwidth,-0.6cm)
+       \includegraphics[height=0.67cm]{data/igalia-logo.png}
+\end{textblock*}}
+
+\definecolor{links}{rgb}{0.1, 0.3, 0.6}
+\hypersetup{colorlinks,linkcolor=,urlcolor=links}
+
+\pgfdeclareimage[height=\paperheight]{igaliabglight}{data/igalia_bg_light.eps}
+\pgfdeclareimage[height=\paperheight]{igaliabg}{data/igaliabg.eps}
+
+%\setbeamertemplate{title page}{
+%        \begin{picture}(-90, 180)
+%                      \put(-200, -74){%
+%                \pgfuseimage{igaliabg}
+%            }
+%
+%            \put(55,19){%
+%                              \begin{minipage}[b][36mm][t]{240mm}
+%                    \usebeamerfont{title}{\inserttitle\par}
+%                    \usebeamerfont{author}{\insertauthor\par}
+%                    \usebeamerfont{title}{\insertinstitute\par}
+%                \end{minipage}
+%            }
+%              \end{picture}
+%}
+
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{title page}{
+        \begin{picture}(0,0)
+            \put(-30,-164){%
+                \pgfuseimage{igaliabg}
+            }
+
+            \put(0,-110.7){%
+                \begin{minipage}[b][38mm][t]{220mm}
+                    \usebeamerfont{title}{\inserttitle\par}
+                                       \vspace{0.1cm}
+                    \usebeamerfont{author}{\insertauthor\par}
+                \end{minipage}
+            }
+
+                       \put(240, -138){
+                               \usebeamerfont{date}{\small{\textbf{\insertdate}}\par}
+                               }
+               \end{picture}
+}
+
+\setbeamertemplate{itemize items}[triangle]
+\setbeamertemplate{itemize subitem}[circle]
+\setbeamerfont{frametitle}{size=\small}
+
+\setbeamertemplate{blocks}[default]
+\setbeamercolor{block title}{fg=amber,bg=black}
+
+
+\title{\textbf{OpenGL and Vulkan Interoperability}}
+\author[Eleni Maria Stea <estea@igalia.com>]{\small{Ελένη Μαρία Στέα
+<estea@igalia.com>}\\\\\includegraphics{data/igalia.eps}}
+\date{FOSSCOMM 2020}
+
+\AtBeginSection[]
+{
+  \begin{frame}
+    \frametitle{Outline}
+       \tableofcontents[currentsection]
+  \end{frame}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[plain]
+\titlepage
+\end{frame}
+
+\begin{frame}
+       \frametitle{Outline}
+       \tableofcontents
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[Εισαγωγή]{OpenGL extensions για interoperability}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile,c]
+       \frametitle{Vulkan, OpenGL APIs}
+       \begin{center}
+               \vspace{1cm}
+               \begin{table}
+                       \begin{tabularx}{\textwidth}{ c c}
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[scale=.07]{data/vulkan.png}} &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[scale=.07]{data/opengl.png}}\\
+                       \end{tabularx}
+               \end{table}
+       \end{center}
+\end{frame}
+
+\begin{frame}[fragile,c]
+       \frametitle{Η έννοια της διαλειτουργικότητας (Interoperability)}
+
+       \begin{center}
+       \textbf{\color{coolblack}{INTEROPERABILITY}}
+       \vspace{0.5cm}
+
+       \begin{tabularx}{\textwidth}{X}
+               \rowcolor{coolblack}
+               \multicolumn{1}{c}{
+                       \color{paleaqua}{Με τα EXT\_external\_objects(\_fd) μπορούμε:}
+               }\\
+               \rowcolor{platinum}
+               \\
+               \rowcolor{platinum}
+               \small{· \color{coolblack}{Να \textbf{δεσμεύουμε πόρους} (textures,
+               buffers) \textbf{μια φορά} από το Vulkan και να έχουμε πρόσβαση σε
+               αυτούς και από τα δύο APIs οσεσδήποτε φορές.}
+               }
+               \\
+               \rowcolor{platinum}
+               \\
+               \rowcolor{platinum}
+               \small{· \color{coolblack}{Να \textbf{συγχρονίζουμε} την
+               πρόσβαση του κάθε API στους κοινόχρηστους πόρους.}}\\
+               \rowcolor{platinum}
+               \\
+       \end{tabularx}
+       \end{center}
+       \vspace{0.2cm}
+       \footnotesize{\textbf{Παράδειγμα:} σε ένα VR compositor μπορεί να
+       χρησιμοποιείται
+       Vulkan για να φτιαχτούν και να εμφανιστούν οι εικόνες που θα βλέπει
+       το κάθε μάτι, αλλά το περιεχόμενό τους να ζωγραφίζεται από OpenGL
+       προγράμματα.}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{OpenGL extensions για διαλειτουργικότητα στο Linux}
+
+       \center{\textbf{\color{coolblack}{OpenGL Extensions (Linux)}}}
+       \vspace{0.2cm}
+
+       \setbeamertemplate{itemize/enumerate body begin}{\footnotesize}
+       \setbeamertemplate{itemize/enumerate subbody begin}{\tiny}
+       \setbeamertemplate{itemize/enumerate subsubbody begin}{\tiny}
+
+       \setbeamertemplate{itemize items}[triangle]
+       \setbeamertemplate{blocks}[rounded][shadow]
+
+       \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects\_fd
+               (EXT\_memory\_object\_fd, EXT\_semaphore\_fd)}:}}
+               \begin{itemize}
+                       \item Eπιτρέπουν σε ένα OpenGL πρόγραμμα να αποκτήσει πρόσβαση σε
+                               μνήμη που έχει
+                               δεσμευθεί από το Vulkan (είτε για objects είτε για semaphores)
+                               μέσω ενός POSIX file descriptor handle.
+               \end{itemize}
+       \end{block}
+
+       \vspace{0.2cm}
+
+       \begin{block}{\color{afblue}{\footnotesize\textbf{EXT\_external\_objects
+               (EXT\_memory\_object, EXT\_semaphore)}:}}
+               \begin{itemize}
+                       \item Eπιτρέπουν στα OpenGL προγράμματα να φτιάχνουν
+                               OpenGL αντικείμενα (textures,
+                               buffers και semaphores) από την εξωτερική Vulkan μνήμη, και
+                               να συγχρονίζουν \textbf{από κοινού} την πρόσβαση σ αυτά.
+                       \item {Eπεκτείνουν τα OpenGL calls που χρησιμοποιούνται
+                               για να θέσουν ή να επιστρέψουν ιδιότητες εικόνων και buffers
+                               με περισσότερες παραμέτρους (πχ texture tiling mode).}
+               \end{itemize}
+       \end{block}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[Interoperability σε Piglit και Mesa 3D]{Προσθήκες στο Mesa και το Piglit}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+       \frametitle{Igalia's contributions}
+
+       \setbeamertemplate{blocks}[rounded]
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Συνοπτικά η δουλειά μας}}}
+               }
+
+       \vspace{0.5cm}
+
+       \begin{block}{Mesa}
+               \footnotesize{
+                       Στην Igalia προσπαθήσαμε να υποστηρίξουμε αυτά τα extensions σε
+                       διάφορους {\color{deepjunglegreen}\textbf{Mesa drivers}}.}
+       \end{block}
+
+       \vspace{0.3cm}
+
+       \begin{block}{Piglit (drivers testing framework)}
+               \footnotesize{
+                       Κι επειδή δεν είχαν γραφτεί (και δεν μπορούσαν να γραφτούν)
+                       \textbf{conformance tests} γι αυτά,
+                       γράψαμε ένα δικό μας Vulkan framework για το
+                       {\color{coolblack}\textbf{Piglit}} και τα δικά μας
+                       Vulkan/GL τεστ που καλύπτουν τις πιο βασικές χρήσεις των extensions.
+               }
+       \end{block}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+       \frametitle{Oι προσθήκες στο Mesa3D}
+
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Contributions στους Mesa
+       drivers}}}
+       }
+       \tiny{
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|l|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Driver & Igalia's Contributions & Status \\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               iris & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
+                               EXT\_external\_objects\_fd & \cellcolor{babypink}{under review (MR
+                               !4337)}\\
+                               \rowcolor{whitesmoke}
+                               freedreno & \textbf{\color{coolblack}implemented} EXT\_external\_objects,
+                               EXT\_external\_objects\_fd & \cellcolor{green}{upstream} \\
+                               \rowcolor{platinum}
+                               radeonsi & added \textbf{\color{coolblack}support for external buffers} to the already implemented feature &
+                               \cellcolor{green}{upstream} \\
+                               \rowcolor{whitesmoke}
+                               i965 & helped with the \textbf{\color{coolblack}review}, patches & \cellcolor{babypink}{under review
+                               (Draft MR !5594)}\\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+
+       \center{
+               \normalsize{\textbf{\color{coolblack}{Contributors, reviewers,
+               people who helped!}}}
+       }
+
+       \tiny{
+               \begin{table}[ht]
+                       \begin{tabularx}{\textwidth}{|l|X|X|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Driver & Patches & Reviews, Comments, Advice\\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               iris & Juan A. Suárez Romero, Eleni Maria Stea, Tapani Pälli, Eduardo Lima Mitev
+                               & Tapani Pälli, Rohan Garg, Eric Engestrom, Kenneth Graunke,
+                               Jason Ekstrand, Oscar Barenys, Daniel Stone, Matt Turner, Tomeu Vizoso \\
+                               \rowcolor{whitesmoke}
+                               freedreno & Eduardo Lima Mitev, Hyunjun Ko & Rob
+                               Clark, Marek Olšák, Jonathan Marek, Rohan Garg\\
+                               \rowcolor{platinum}
+                               radeonsi & Eleni Maria Stea (buffers support only, the rest was
+                               implemented by AMD long time ago)
+                               & Marek Olšák, Bas Nieuwenhuizen, Pierre-Eric Pelloux-Prayer \\
+                               \rowcolor{whitesmoke}
+                               i965 & Rohan Garg, Juan A. Suárez Romero, Tapani Pälli
+                               & Tomeu Vizoso, Eleni Maria Stea, Oscar Barenys \\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+
+       \tiny{
+               \begin{itemize}
+                       \item {Σε περίπτωση που ξεχνάω κάποιον, οι reviewers και οι
+                               developers φαίνονται στα προαναφερθέντα Merge Requests (MR) στο
+                               Freedesktop Gitlab (\url{https://gitlab.freedesktop.org})!}
+               \end{itemize}
+       }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Οι προσθήκες στο Piglit I}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit I }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Επαναχρησιμοποίηση εικόνων:}\end{center}
+                       \vspace{-0.3cm}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|c|l|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Τεστ & Περιγραφή
+                               & Αποτέλεσμα & Status\\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               vk-image-overwrite &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               δημιουργεί εικόνες που έχουν διαφορετικό format και tiling
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}} τις
+                                       γεμίζει με πράσινο χρώμα
+                               \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                       αποτέλεσμα:}} πράσινη οθόνη
+                               \end{itemize}
+                               &
+                               \adjustbox{valign=t, margin=1ex, padding=1ex}{\includegraphics[height=1cm]{shots/image_overwrite.png}} & \cellcolor{green}{upstream}\\
+                               \hline
+                               \rowcolor{whitesmoke}
+                               vk-image-display &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               δημιουργεί μια εικόνα και τη γεμίζει με ρίγες διαφόρων
+                                               χρωμάτων
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               ζωγραφίζει την εικόνα στην οθόνη χρησιμοποιώντας semaphores
+                                               για να συγχρονίσει την πρόσβαση στην εικόνα
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}} μια ριγέ εικόνα στην οθόνη
+                               \end{itemize}
+                               &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline
+                               \rowcolor{platinum}
+                               vk-image-display-overwrite &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                       δημιουργεί μια εικόνα και τη γεμίζει
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               ξαναγράφει τα pixels με μια καινούρια ριγέ εικόνα
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               διαβάζει πίσω το περιεχόμενο της εικόνας
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}} τα pixels που θα διαβαστούν να είναι τα
+                                               αλλαγμένα
+                               \end{itemize}
+                               &
+                               \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{Οι προσθήκες στο Piglit II}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit II }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Επαναχρησιμοποίηση του depth και του stencil buffer:}\end{center}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|c|l|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Τεστ & Περιγραφή
+                               & Αποτέλεσμα & Status\\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               vk-depth-display &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               δημιουργεί κάποιο pattern στο z buffer (quad)        
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               ζωγραφίζει ένα fullscreen quad σε μεγαλύτερο βάθος (z,
+                                               depth)
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               το quad δεν εμφανίζεται σε κάποια σημεία
+                               \end{itemize}
+                               &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/depth.png}}
+                               & \cellcolor{babypink}{under review}\\
+                               \hline
+                               \rowcolor{whitesmoke}
+                               vk-stencil-display &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               δημιουργεί κάποιο pattern στο stencil buffer
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               ζωγραφίζει ένα μπλε fullscreen quad χρησιμοποιώντας
+                                               stencil testing
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               το quad θα εμφανίζεται μόνο όπου πετυχαίνει το stencil test
+                               \end{itemize}
+                               &
+                               \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{Οι προσθήκες στο Piglit III}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit III }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Επαναχρησιμοποίηση των pixel buffer:}\end{center}
+
+               \begin{table}[tc]
+                       \begin{tabularx}{\textwidth}{|l|X|c|l|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Τεστ & Περιγραφή
+                               & Αποτέλεσμα & Status\\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               vk-buf-exchange &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               δημιουργεί μια εικόνα, ζωγραφίζει σ' αυτή το pattern με
+                                               τις ρίγες και αντιγράφει τα pixels της σ' ένα buffer
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               χρησιμοποιεί αυτό το buffer ως pixel storage για ένα
+                                               texture και το δείχνει στην οθόνη
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               χρωματιστές μπάρες στην οθόνη
+                               \end{itemize}
+                               &
+                               \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 &
+                               Όμοια με το προηγούμενο και:
+                               \begin{itemize}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               επιχειρεί να γράψει πάνω στο buffer ένα νέο pattern
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               επιστρέφεται error στο χρήστη και το buffer παραμένει
+                                               άθικτο
+                               \end{itemize}
+                                &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/image_display.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Οι προσθήκες στο Piglit IV}
+
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit IV }}}
+       \end{center}
+
+       \tiny{
+               \begin{center}\textbf{Επαναχρησιμοποίηση των vertex buffer:}\end{center}
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|l|l|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Τεστ & Περιγραφή
+                               & Αποτέλεσμα & Status\\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               vk-vert-buf-update-errors &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               φτιάχνει ένα vertex buffer και γεμίζει μόνο τα ζυγά
+                                               quads δημιουργώντας ένα pattern σκακιέρας 
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               καθαρίζει (γεμίζει με) κόκκινο το framebuffer και
+                                               ζωγραφίζει το vertex buffer με μπλε χρώμα
+                                       \item[\textbullet] \textbf{\color{coolblack}OpenGL:}
+                                               προσπαθεί να αλλάξει το περιεχόμενο του VBO
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               ένα pattern σκακιέρας με κόκκινα και μπλε quads
+                                               και invalid  operation error για την απόπειρα αλλαγής των
+                                               δεδομένων
+                               \end{itemize}
+                               &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+                               & \cellcolor{green}{upstream}\\
+                               \hline
+                               \rowcolor{whitesmoke}
+                               vk-vert-buf-reuse &
+                               \begin{itemize}
+                                       \vspace{-0.3cm}
+                               \itemsep0cm
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               όμοια με το προηγούμενο τεστ
+                                       \item[\textbullet] \textbf{\color{coolblack}{OpenGL:}}
+                                               όμοια με το προηγούμενο εκτός από το invalid overwrite test
+                                       \item[\textbullet] \textbf{\color{coolblack}Vulkan:}
+                                               επαναχρησιμοποιεί το VBO σε ένα renderpass για να
+                                               ζωγραφίσει τη σκακιέρα
+                                       \item[\textbullet] \textbf{\color{coolblack}{Προσδοκώμενο
+                                               αποτέλεσμα:}}
+                                               σκακιέρα στην οθόνη
+                               \end{itemize}
+                               &
+                               \adjustbox{valign=t, margin=1ex,
+                               padding=1ex}{\includegraphics[height=1cm]{shots/vert_buf_update_errors.png}}
+                               &
+                               \cellcolor{green}{upstream}\\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Οι προσθήκες στο Piglit V}
+       \begin{center}
+               \normalsize{\textbf{\color{coolblack}{Contributions στο Piglit V }}}\\
+               \vspace{0.5cm}
+               \scriptsize{Πολλοί ακόμη βοήθησαν στα τεστ:}
+       \end{center}
+
+       \tiny{
+               \begin{table}[t]
+                       \begin{tabularx}{\textwidth}{|l|X|}
+                               \hline
+                               \rowcolor{paleaqua}
+                               Contributors & Contributions \\
+                               \hline
+                               \hline
+                               \rowcolor{platinum}
+                               Eleni Maria Stea & tests, Vulkan framework code \\
+                               \rowcolor{whitesmoke}
+                               Juan A. Suárez Romero & contributions στο framework, και στο
+                               vk-image-overwrite, testing \\
+                               \rowcolor{platinum}
+                               Tapani Pälli (\textit{\color{coolblack}{many thanks!}}) &
+                               reviews, testing και patches
+                               για το framework \\
+                               \rowcolor{whitesmoke}
+                               Bas Nieuwenhuizen & framework patch για να υποστηρίξουμε
+                               dedicated μνήμη \\
+                               \rowcolor{platinum}
+                               Topi Pohjolainen & πήραμε ιδέες από κάποια παλιά patches του στο ξεκίνημα\\
+                               \hline
+                       \end{tabularx}
+               \end{table}
+       }
+
+       \begin{itemize}
+               \item Επίσης ευχαριστίες στον Eduardo Lima Mitev και το Hyunjun Ko για
+                       τα reviews τους και στο Germán Poo Caamaño που μας βοήθησε να βάλουμε
+                       τάξη στα αρχικά commits του Vulkan framework.
+               \item Τέλος ελπίζω ότι δεν ξεχνάω κάποιον, αλλά επειδή τα slides
+                       γράφτηκαν πριν την παρουσίαση περισσότερες πληροφορίες στο
+                       \url{https://gitlab.freedesktop.org}!
+       \end{itemize}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[fragile]
+       \frametitle{Piglit Results}
+       \begin{block}{\begin{center}Συμπεράσματα από τη δοκιμή των mesa drivers με
+       τα tests:\end{center}}
+               \begin{itemize}
+                               \vspace{0.3cm}
+                       \item Σχεδόν όλα τα τεστ περνούν στους προαναφερόμενους mesa drivers
+                               (iris, freedreno, radeonsi, i965).\\
+                               \vspace{0.3cm}
+                       \item Δυστυχώς μόνο ο iris driver υποστηρίζει external depth
+                               buffers (Tapani Pälli) και κανένας mesa driver δεν υποστηρίζει το external stencil
+                               buffer. Ως τώρα μόνο ο proprietary Nvidia driver φαίνεται να
+                               υποστηρίζει και τα 2.\\
+                               \vspace{0.3cm}
+                       \item Tα external buffers δεν υποστηρίζονταν στον
+                               radeonsi και τo διορθώσαμε.\\
+                               \vspace{0.3cm}
+               \end{itemize}
+       \end{block}
+
+\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[Αναφορές (ΕΝ)]{Αναφορές}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\setbeamertemplate{bibliography entry title}{}
+%\setbeamertemplate{bibliography entry location}{}
+%\setbeamertemplate{bibliography entry note}{}
+\setbeamerfont{bibliography item}{size=\footnotesize}
+\setbeamerfont{bibliography entry author}{size=\footnotesize}
+\setbeamerfont{bibliography entry title}{size=\footnotesize}
+\setbeamerfont{bibliography entry year}{size=\footnotesize}
+\setbeamerfont{bibliography entry note}{size=\footnotesize}
+
+\begin{frame}[allowframebreaks]
+       \frametitle{Links}
+       \bibliographystyle{unsrt}
+       \bibliography{bib/references.bib}
+       \nocite{*}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section[Q \& A]{Ερωτήσεις}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}
+       \frametitle{Ερωτήσεις;}
+       {\fontsize{8}{7}\selectfont
+       \begin{center}
+               \begin{figure}
+               \includegraphics[scale=0.04]{data/qmark.png}
+               \end{figure}
+               \vspace{0.7cm}
+               {\large E-mail: {\color{coolblack}estea@igalia.com}}\\
+               {\large IRC/Freenode: {\color{coolblack}hikiko}}\\
+       \end{center}
+       }
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{frame}[plain]
+\begin{minipage}[b][0.6\textheight]{\linewidth}
+       \begin{picture}(0, 0)
+               \put(0, -76){%
+                       \pgfuseimage{igaliabglight}
+                       }
+                       \begin{minipage}[b][0.4\textheight]{\linewidth}
+                               \begin{figure}
+                                       \includegraphics[scale=0.6]{data/mesa.png}
+                               \end{figure}
+                       \end{minipage}
+               \put(-200, 0) {
+                       \hfill \huge{\textbf{\color{coolblack}Ευχαριστώ!}}\\
+                       }
+       \end{picture}
+\end{minipage}
+
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\end{document}