为什么primusrun比optirun慢?

有人可以解释这些结果吗? 对于primusrun而言, glxspheres是否过于聪明而根本没有做额外的工作?

 ...:~$ glxspheres Polygons in scene: 62464 Visual ID of window: 0xaf Context is Direct OpenGL Renderer: Mesa DRI Intel(R) Ivybridge Mobile 59.811274 frames/sec - 66.749382 Mpixels/sec 59.577921 frames/sec - 66.488960 Mpixels/sec 59.791245 frames/sec - 66.727029 Mpixels/sec 59.723333 frames/sec - 66.651240 Mpixels/sec ...:~$ optirun glxspheres Polygons in scene: 62464 Visual ID of window: 0x21 Context is Direct OpenGL Renderer: Quadro K1000M/PCIe/SSE2 190.833067 frames/sec - 212.969703 Mpixels/sec 209.895160 frames/sec - 234.242999 Mpixels/sec 207.980413 frames/sec - 232.106141 Mpixels/sec ...:~$ primusrun glxspheres Polygons in scene: 62464 Visual ID of window: 0xaf Context is Direct OpenGL Renderer: Quadro K1000M/PCIe/SSE2 61.001631 frames/sec - 68.077820 Mpixels/sec 59.677170 frames/sec - 66.599722 Mpixels/sec 59.715808 frames/sec - 66.642842 Mpixels/sec 

Ubuntu 12.04 x64,联想W530 w / Intel i7 @ 2.8 GHz

来自Primus FAQ :

 Q: Performance does not exceed 60 fps, I was getting more with optirun/VirtualGL. A: This is the effect of vblank synchronisation. For benchmarking, you can use vblank_mode=0 primusrun ..., but in practice this will probably only waste power, as your LCD panel does not display more than 60 frames per second anyway. 
Interesting Posts