[cairo] [PATCH 2/2] gl: Remove GL fixed-function matrix usage.

Alexandros Frantzis alexandros.frantzis at linaro.org
Tue Feb 8 02:50:48 PST 2011


On Wed, Feb 02, 2011 at 09:07:56AM +0000, Chris Wilson wrote:
> On Wed, 2 Feb 2011 04:00:01 +0200, Alexandros Frantzis <alexandros.frantzis at linaro.org> wrote:
> > in order to get a better view of the situation, I added some simple
> > instrumentation to cairo-gl. The results for sufficiently long runs of
> > various benchmark are:
> > 
> >                                                           vertices/update 
> >                      Vertices  CPU xforms Uniform updates (xforms/update)
> > firefox-talos-gfx    365825262 121941756  2262973         160 (53)        
> > gnome-system-monitor 126700506 42233504   47897           2645 (881)
> > evolution            7236340   2412114    86182           83 (28)
> > poppler              15121080  5040360    253440          60 (20)
> > 
> > Where:
> >     Vertices: How many vertices where emitted
> >     CPU xforms: the number of point transforms on the CPU with Eric's patch
> > 	            (always ~3xVertices)
> > 	Uniform updates: the number of ModelViewProjection uniform updates
> > 	                 with my branch
> > 	vertices/update: Ratio of vertices per uniform update
> > 	xforms/update: Ratio of CPU transforms per uniform update
> 
> Before I dive in, does your MVP branch include the matrix uniform updates
> for computing the src/mask tcoords from the single dst vertex?
> 
> This debate will only get interesting when we have vertex shaders. Then we
> really can compare the CPU/GPU tradeoff (and quality of driver
> implementation). There are important secondary effects from reducing the
> amount of vertex data being pushed out from cairo, which should give
> additional benefit from vertex shaders and moving the burden to the
> driver/GPU.
> -Chris
> 
> -- 
> Chris Wilson, Intel Open Source Technology Centre
> 

I think it would be better not to block on this decision.  Both
approaches are solid, each with its own merits. I suggest that we choose
any one of them and revisit this issue when we have added GLES2.0
support. This will allow us to run benchmarks on a different class of
devices, where perhaps the differences (if any) between the two
approaches will be more evident.

I am going to send a "Replace built-in shader variables" patchset to the
mailing list shortly. It is currently based on my approach but I am
happy to rebase it on Eric's patch if that is preferred.

Thanks,
Alexandros


More information about the cairo mailing list