Difference between revisions of "Glxgears is not a Benchmark"
m (Protected "Glxgears is not a Benchmark": Excessive vandalism ([edit=autoconfirmed] (expires 19:00, 16 September 2012 (UTC)) [move=autoconfirmed] (expires 19:00, 16 September 2012 (UTC))))
Revision as of 14:00, 2 September 2012
glxgears is an OpenGL program that reports FPS (frames per second) numbers. However, it is a very limited 'test'. Unlike most modern 3D games, glxgears:
- has an extremely low vertex/polygon count
- does no texturing at all
- only simple, flat shading is used (except inside the hole in each gear is simple smooth shading)
- all vertex data is stored in a display list, so almost nothing passes between host CPU and video card once rendering is started. This mostly implies video card fill rate is limited. But, see next point.
- the default window size is 300x300, a large part of which is not even rendered into, so it's not even a good fill rate test
- the entire render step consists of only 21 OpenGL functions calls, of which only 6 are unique. This is not a very good OpenGL API stress test. Something like glean would be better.
So to summarize, glxgears only tests a small part of what you typically see in a 3D game. You could have glxgears FPS performance increase, but your 3D game performance decrease. Likewise, you could have glxgears performance decrease and your 3D game performance increase.
(Information taken from posts by Septor and dataangel - Thanks!).
Debunking the Myth (radeon vs fglrx)
Your FPS numbers went up after you load the fglrx driver! This is not because the radeon driver "sucks." This is due to the activation of *HARDWARE* acceleration since the 'radeon' driver has no 3D acceleration. Your 'radeon' driver was using your CPU and the Indirect MESA OpenGL library. Your 'fglrx' driver is using your Radeon VPU. Imagine that!
Note that in current versions of X.Org X11, the above is only true for r5xx and later series Radeons. r1xx series cards (Radeon VE, Radeon 7xxx) are supported (including 3D hardware acceleration) by the "radeon" driver and r2xx series cards (up to Radeon 9250) by the "r200" driver. There is now a r300 dri module that supports 3D acceleration with Radeon 9500 and above, up to X850 (r3xx and r4xx series). (Tested by this paragraphs's writer on R9600XT.) Although it is really an initial thing so don't expect it to work with decent commercial games (is that still true?). (Tested with Tuxracer and Devil Whiskey, both worked fine, unfortunately a bit slower). This driver is now available as part of X.org R6.9 and R7.0. See the Driver FAQ at X.org. The "ati" driver also included with X.Org X11 will automatically figure out which of the 3 Radeon driver flavors (radeon, r200, r300) to load.
Debunking the Myth (fglrx updates)
Your FPS numbers went up/down after you loaded the latest version! This is not because there was a change in the driver. Since the program is so wild and sensitive to load (since it barely uses any computational power), any 100+ FPS increase or decrease can easily be attributed to a music program or OpenOffice document you have open. You can also wildy change FPS in glxgears by simply unfocusing the window. Want a 1000FPS increase?? UNFOCUS THE WINDOW! Of course this is meaningless, since you can't enjoy Doom3 if you can't see the window.
Debunking the Myth (glxgears is a benchmark)
glxgears is not a benchmark.
You can use it to show that DRI works, but it does not even test that well. There's glxinfo or your Xorg.0.log to tell you if DRI was enabled as well.
And for the people who're wondering why CPU usage is 100%, while glxgears seems to be giving quite a lot of fps: yes, this is normal, because it tries to get the max number of frames per second. Checking CPU usage for glxgears is not a way to see if direct rendering works.
Check fglrx install status
# fglrxinfo # glxinfo # vi /var/log/Xorg.0.log # dmesg
Use any of those commands to view the status of the fglrx module. Did it initilize correctly? Did it load DRI? Look in those files. If glxinfo reports direct rendering as "no" or the OpenGL renderer as "Mesa", then you are currently using software (un-accelerated) rendering.
- Gtkperf - offered by any major distribution's repository.