After more investigation, I was able to trace this to a bug in my OpenGL initialization logic.

The following (psuedocode) sequence, forces fglrx to revert to indirect rendering:
dpy = XOpenDisplay()
visual = glXChooseVisual(dpy)
XCloseDisplay(dpy)
...
dpy2 = XOpenDisplay()
ctx = glXCreateContext(dpy2, visual) <-- fglrx reverts to indirect rendering
...

Changing the code to use the same display connection for glXChooseVisual and glXCreateContext solves this problem.

I do not know if what I was doing was wrong/prohibited in X11 (wasn't able to find any relevant information on the net). It seems, however, that there are other applications affected by this issue (VLC for example) - although they may, or may not follow the same code pattern.

Please confirm if this solves the issue for you.


Reply via email to