[Mesa-dev] Performance glxSwapBuffers 32 bit vs. 64 bit

Michel Dänzer michel at daenzer.net
Fri Nov 11 03:09:16 PST 2011

On Fre, 2011-11-11 at 07:35 +0100, Mathias Fröhlich wrote: 
> On Thursday, November 10, 2011 18:42:13 Michel Dänzer wrote:
> > On Don, 2011-11-10 at 11:01 +0100, Theiss, Ingo wrote:
> > > The function calls of mesa/state_tracker/st_cb_readpixels.c:382 ->
> > > st_readpixels and mesa/main/pack.c:552 -> _mesa_pack_rgba_span_float
> > > clearly stands out when comparing the 32 bit and 64 bit profile.
> > 
> > I'm afraid that's a red herring, as I don't think glXSwapBuffers calls
> > glReadPixels under any circumstances. I suspect the time inside
> > glXSwapBuffers isn't spent on CPU cycles but rather waiting for some
> > kind of event(s). Offhand I don't know any better way to debug that than
> > attaching gdb, interrupting execution every now and then and hoping to
> > catch it somewhere inside glXSwapBuffers. Maybe others have better
> > ideas.
> Well he is using VirtualGL which intercepts glXSwapBuffers by LD_PRELOAD'ing a 
> shared library containing this and several other functions.
> The aim of VirtualGL is to render on the applicatoin side even for a remote 
> display. To make this work they create an application local accelerated gl 
> context render into this one and on glXSwapBuffers read the back buffer and send 
> it the same way over the X connection like the software renderer does.
> So It makes sense to find a glReadPixels in VirtualGL's glxSwapBuffers.

Ah. I thought the time measurements in Ingo's original post were for the
Mesa glXSwapBuffers, not the VirtualGL one. If it's the latter, then
this makes sense.

Ingo, I noticed that your 64-bit and 32-bit drivers were built from
slightly different Git snapshots. Is the problem still the same if you
build both from the same, current snapshot?

If yes, have you compared the compiler flags that end up being used in
both cases? E.g., in 64-bit mode SSE is always available, so there might
be some auto-vectorization going on in that case.

Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer

More information about the mesa-dev mailing list