I get the following unexpectedly low frames per second reported by the CoDMW application (arcade mission 'War Pig') running at 1600x900 under Ubuntu 12.10 (see also comments on Bumblebee-Project/Bumblebee#241):
primus: 15-16 fps
optirun: 25-32 fps
and I get occasionally graphics freezes of 1-5 seconds where the video stops but the game continues running in the background (eg when video starts up again I sometimes have been shot).
primus does not report any profiling information for this application, and using PRIMUS_SYNC=1 (or 2) doesn't make any difference.
Looking at the CPU usage, it appears that under primus one of the cores is running at approx 40%, whereas under optirun it is running at around 90%.
I'm running on a 64 bit OS with primus's libGL.so.1 built for i386.
I don't see how that could happen. Please run wine under gdb like this:
gdb -ex "b glXSwapBuffers" -ex r -ex "thread apply all bt" --args wine ... |& tee /tmp/gdbout.txt
Press y in the beginning and pastebin /tmp/gdbout.txt.
Do you mean run the app iw3sp.exe with wine after exporting the env vars from primusrun? I've done that and the output is at http://pastebin.com/ERxmbN9a. gdb kept stopping and I kept continuing until the level started in the hope it might output something useful.
Silly me, I was using the wrong primusrun file to run CoDMW. I had one set up for 32 bit and one set up for 64 bit, and I used the 64 bit primusrun.
Exporting the correct variables I get framerates nearer 40 fps, which is significantly better than with optirun.