# [cairo-commit] papers/opengl_freenix04 opengl_freenix04.tex,1.28,1.29

Peter Nilsson commit at pdx.freedesktop.org
Mon Aug 15 11:12:59 PDT 2005

Committed by: peter

Update of /cvs/cairo/papers/opengl_freenix04
In directory pdx:/tmp/cvs-serv22384

Modified Files:
opengl_freenix04.tex
Log Message:
text n stuff

Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** a/opengl_freenix04.tex	26 Feb 2004 19:52:14 -0000	1.28
--- b/opengl_freenix04.tex	27 Feb 2004 03:26:57 -0000	1.29
***************
*** 720,838 ****
\end{verbatim}
\end{footnotesize}
!
!     Applications, libraries and toolkits which use \libname{} as
!     rendering backend will get both 2D and 3D support with the ability
!     two use all 2D surfaces as textures for 3D rendering.
!
\section{Results}

!   \edannote{To be updated}
!
!   Right now the library hasn't really been tested that much in real
!   applications as it is relatively early in the development process. Some
!   small test utilities for cairo have been ported to use the new OpenGL
!   backend though. The results have been satisfying both with respect to
!   performance and accuracy. Figures~\ref{cairo-demo-xrender} and
!   \ref{cairo-demo-glc} show a part of the output from the cairo-demo
!   application. Figure~\ref{cairo-demo-xrender} shows output from cairo-demo
!   using xrender and Figure~\ref{cairo-demo-glc} shows the corresponding
!   output using the GL backend for rendering.
!
!   \begin{figure}[htbp]
!     \begin{centering}
!       \epsfig{file=cairo-demo-xrender.eps, width=3.0in}
!       \small\itshape
!       \caption{\small\itshape Output from cairo-demo when run with
!                               anti-aliased xrender output.}
!       \label{cairo-demo-xrender}
!     \end{centering}
!   \end{figure}
!
!   \begin{figure}[htbp]
!     \begin{centering}
!       \epsfig{file=cairo-demo-glc.eps, width=3.0in}
!       \small\itshape
!       \caption{\small\itshape Output from cairo-demo when run with aliased
!                               OpenGL output.}
!       \label{cairo-demo-glc}
!     \end{centering}
!   \end{figure}
!
!   Note that the image rendered by OpenGL compares rather well to that
!   rendered by xrender. Although not obvious in the printed version,
!   the on-screen display of these images does show a difference. The
!   xrender output is anti-aliased while the OpenGL output is not. Work is
!   now in progress to add support for anti-aliasing to the GLC backend.
!
!   \edannote{It might be good to add a closeup figure here to
!             demonstrate the difference. That can wait until the final paper.
!             Or better, the final paper may just drop this paragraph as
!             hopefully GLC will be anti-aliased by then.}
!
!   A simple benchmark application was also written to compare the rendering
!   performance with cairo, using the different rendering backends including
!   xrender, images (pure software) and the OpenGL backend developed in this
!   project. This benchmark application, called cairobench, currently contains
!   two separate tests.
!
!   The first test animates a semi-transparent, stroked and filled cairo path
!   made up of several bezier curves that moves randomly over a simple
!   background image. This test shows the speed at which transparent trapezoids
!   can be drawn using cairo paths.
!
!   The second test scales a background image and translates another
!   semi-transparent image randomly across the screen, testing image compositing
!   and transformation performance.

!   On all the systems on which the tests have currently been run, performance
!   has increased multiple times when rendering with the new OpenGL backend.
!   Table~\ref{tab:cairobench} shows test results from a tested system. More
!   tests will be presented in the full report.

!   \begin{table}[htbp]
!     \centering
!     \begin{tabular}{|c||c|c|}\hline
!       {\bf Output} & {\bf Test \#1} & {\bf Test \#2}
!       \\\hline {\bf GLX} & {400 fps} & {970 fps}
!       \\\hline {\bf xrender} & {50 fps} & {4 fps}
!       \\\hline {\bf image} & {9 fps} & {4 fps}
!       \\\hline
!     \end{tabular}
!     \small\itshape
!     \caption{Test results from cairobench on a AMD Athlon XP 2600+ /
!              GeforceFX5600 running Nvidias binary Linux driver.}
!     \label{tab:cairobench}
!   \end{table}

!   \edannote{It would be good to add some more analysis of the results
!             here. First, a summary mentioning the overall speedup (8X-240X)
!             would be appropriate. Next, why is there such a large discrepancy
!             in the speedup?}
!
!   These results suggest a speedup of about 4X to 240X when using OpenGL
!   for rendering compared to Render. It seems that graphical applications have
!   a lot to gain from using a 2D API with OpenGL accelerated rendering.

!   There has also been some benchmarking of Imlib2 compared to the software
!   developed here. A benchmark utility called Renderbench was recently
!   released that points out the superior rendering performance of Imlib2
!   compared to that of Render. Renderbench has been ported to instead test
!   the performance of Imlib2 compared to the library developed here.
!   Although Imlib2 is very fast at some tasks, still in most cases it can't
!   compare to the rendering capabilities of OpenGL. This paper currently lacks
!   concrete results from these tests but a more detailed comparison will
!   be presented in the full paper.

-   All these testing and benchmarking utilities can be downloaded from the
-   project web site (referenced in Section 7). The site also contains complete
-   screen shots of these applications in action. More testing will be done
-   and the results will be presented in the full paper.

!   \section{Conclusion}

!   During the development of \libname{} we've found that with the OpenGL
!   extensions available today and the wide range of hardware supporting them,
!   it's not only possible create an Render-like interface on top of OpenGL
!   it's actually very efficient. We're not all the way there yet but with
the current version of \libname{} we've taken a big step.

--- 720,754 ----
\end{verbatim}
\end{footnotesize}
!
!   Applications, libraries and toolkits which use \libname{} as
!   rendering backend will get both 2D and 3D support with the ability
!   two use all 2D surfaces as textures for 3D rendering.
!
\section{Results}
+
+   Right now the library hasn't been tested that much in real
+   applications as it is relatively early in the development process.
+   Some test and benchmark utilities have been developed to analyze library
+   functionality with respect to accuracy and performance.
+
+   \subsection{Accuracy}

!   This section discusses rendering accuracy with text and images.

!   \subsection{Performance}

!   This section discusses rendering performance with text and tables.

!   \section{Conclusion}

!   During the development of \libname{} we've found that with the OpenGL
!   API and the extensions available today and the wide range of hardware
!   supporting them.

!  it's not only possible create an Render-like interface
!   on top of OpenGL it's actually very efficient.

!   We're not all the way there yet but with
the current version of \libname{} we've taken a big step.