Performance problems identified
I have tracked down the performance problems with my game to Pyglet's use of VBOs. It turns out these are dreadfully slow on my machine - a Radeon HD 4850 on Ubuntu Jaunty - and disabling them globally makes the game run much faster. I have thus added a commandline switch (--novbo) to my game to disable VBOs. If my game is giving performance problems, try this first; if it turns out you are still having performance problems, you may be fill-rate bound, in which case you can try reducing the window size (-d option).I don't have access to enough machines to know whether VBOs are best to default to on or off. I would be very grateful if you could let me know whether it runs faster with VBOs on or off, and on what OS and hardware (the -r option shows framerate).
This also explains why so many pyglet games run like a slideshow for me. I thought they were just buggy.
(log in to comment)
Comments
Well, not quite always... I once tried to upgrade the driver on a rather old Windows 2000 installation with Intel graphics, and the result was that OpenGL stopped working altogether. :-(
I can't actually find much info on VBO problems with ATI cards under Linux. I've found upgrading ATI drivers painful compared to Nvidia, so I'd like to know more about what upgraded drivers would offer before wrestling with it.
richard on 2010/04/04 21:21:
There is a pyglet environment variable for this purpose (to work around buggy / otherwise crap OpenGL implementations like yours).Set PYGLET_GRAPHICS_VBO=FALSE
Also, try upgrading your video drivers. It always helps to have the latest.