Linux OpenGL application runs slower on second run after restarting X

I’ve got a very unusual problem under Linux in a dual screen combination (second screen on top, at 1920x2160 resolution). When I start my OpenGL application remotely (via xinit myapp), everything runs fine / smooth. When I exit the application / X and drop to the terminal and restart the application again (via xinit myapp), I get a major slow down in my application. When I run in single screen configuration (1920x1080), I dont notice any slow downs. The slow down only happens in a dual screen configuration.

Another unusual problem is that the slow down happens immediately (first run) if I plug in a cheap 1920x1080 LCD monitor in the DVI socket and restart (powerdown) the system. With another monitor from a respectable manufacturer, the slow down only occurs on the 2nd run and subsequent runs (after powerup).

Linux 3.2.8 x64, ATI HD 6320, Catalyst 12.2 driver, XOrg 1.11.4

Anyone have any ideas as to what I can try to remedy this problem?

Hmm. Do you have a multi-chip CPU (e.g. 2 separate Xeon chips, each a quad core)? Try “numactl --hardware” and see if you have more than one node. If you do have multiple, try locking your process to the first CPU/memory by prefixing the cmd to start your program with “numactl --cpunodebind=0 --membind=0”.

The other thing that comes to mind from your post is that IIRC some GPUs only support framelocking to one or the other of the video outputs, not both. If you don’t explicitly have framelock disabled in your GPU driver (aka sync-to-vblank), this might be a factor.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.