← Back to team overview

bumblebee team mailing list archive

Fwd: Re: Bumblebee slower than integrated graphics?


Hi guys,

Thought I'd share this with you, it looks promising.


----------  Forwarded Message  ----------

Subject: Re: Bumblebee slower than integrated graphics?
Date: Thursday 02 August 2012, 18:44:28
From: Andreas Steinmetz <ast@xxxxxxxx>
To: Lekensteyn <lekensteyn@xxxxxxxxx>

On Do, 2012-08-02 at 11:08 +0200, Lekensteyn wrote:
> On Saturday 28 July 2012 16:39:25 Andreas Steinmetz wrote:
> > 3. "remote" rendering (vglclient running in another shell)
> > ==========================================================
> > 
> > ast@woody ~ $ env LD_LIBRARY_PATH=/usr/lib64/opengl/nvidia/lib vglrun
> > -d :8 -c yuv glxspheres
> The same can be achieved using:
> optirun -c yuv glxspheres
> Furthermore, setting VGL_READBACK=pbo may have a positive impact on 
> performance.
> VGL is a horrible hack, but it's better than nothing. PRIME is really the 
> solution that avoids the ugly number of buffers and other inefficiencies in 
> but is not ready yet and the proprietary blob cannot work with it.

That's true,
though pbo has its own problems with VGL... (see
Even if that is fixed VGL would then need a separate thread to map and
process the pbo buffers, else the pbo speedup is minimalistic.

Anyway, I did write a VGL transport plugin that really speeds up VGL and
makes it again faster than the integrated graphics. Here's the commands
used for comparison (/home/ast/vgl contains the transport plugin):

1.: env vblank_mode=0 glxspheres

2.: env LD_LIBRARY_PATH=/usr/lib64/opengl/nvidia/lib vglrun -d :8 \
	-c proxy glxspheres

3.: env LD_LIBRARY_PATH=/usr/lib64/opengl/nvidia/lib:/home/ast/vgl \
	VGL_TRANSPORT=optirun vglrun -d :8 -c proxy glxspheres

Here's the results:

			window size
command		default		1920x1080
1.		164fps		118fps
2.		134fps		105fps
3.		215fps		127fps

The plugin source is attached. It is, well, quite some hack as it needs
to work around VGL's shim layer for the X11 calls. This is necessary as
a separate output thread is used. Otherwise the screen output sequence
is similar to that what VGL does except that quite some cruft is gone.

If you like the plugin feel free to include it in Bumblee. You would
just need to add an option to enable/disable the transport plugin in
bumblebee.conf and if the plugin is enabled adjust LD_LIBRARY_PATH to
contain the path to the plugin and set VGL_TRANSPORT to "optirun" or
whatever you name the plugin.

> Regards,
> Peter

Andreas Steinmetz                       SPAMmers use robotrap@xxxxxxxx

Attachment: vgl.tgz
Description: application/compressed-tar