Well, as everyone knows by now, OpenGL applications (and probably other kinds of apps) have a few issues with the DWM in Vista. Not only do apps appear to be slower (there’s a noticable lag), the double buffering of the double buffered buffer has other issues as well. Like ghosted frames when the framebuffer isn´t completely redrawn with each frame update.
Instead of whining about how much Vista sucks, I´d like to do something about it, because the DWM isn´t going away. At least, I hope it´s not, because I think it´s rather nice to have a composited desktop.
I´ve been searching a bit on the interweb, but there´s very little information on how one would go to fix at least the “teh-app-is-lagging”-issue. Well yeah, I could disable desktop composition, but hey, I didn’t buy Windows Vista with its sexy composited desktop to disable it all the time, right? And so do most users, so disabling DWM to get ultra-responsiveness with my OpenGL app is not an option. Heck, I would boycot any program that would do so.
Anyway, it appears there are a bunch of DWM API functions that can be used to either give the application more CPU time, or specify how and when the DWM should do its thing. I’ve tried a bunch, but I’m probably doing something wrong because all the available structures return zeroes.
However, this isn’t the right forum for asking questions about the DWM API. What I was about to ask: before I dive into this, are there any people out there who have done such research themselves already? Are there people who already know how to make DWM-ed OpenGL apps more responsive, in any way?
And also (hence the reason for not posting it in the OpenGL-on-Windows subforum), how are issues like these handled on other platforms? How do apps on OS X get along with the composition manager? How do they get along on Linux/BSD with Compiz Fusion? Is the compositing done differently in those environments, or are they having the same issues as there are on Vista/DWM?
But most importantly: does anyone have any idea how these compositing managers can be controlled to work nicely together with OpenGL apps? Because I’m really pulling out my hair on this one. One the one hand, I’d like to have a sexy desktop, but on the other hand I’d really like to have a responsive OpenGL app.