How to disable compositing ONLY on full-screen windows
I have an embedded opengl app that runs slower that it could, due to compositing overhead. It's always full-screen (guaranteed by a customized Metacity WM) and fully opaque. It runs great if I disable compositing. However, there are other apps besides this one, and I want to be able use compositing on some of those windows.
Ultimately it would be nice if I could set a property, or make an X call, to tell the window manager to disable compositing on this window. I have tried calling XCompositeUnredirectWindow inside of the WM, when the app in question has its window active, and I've also tried calling XCompositeUnredirectSubwindows on the root when the app is active (because Metacity redirects all of the subwindows of the root window for compositing), but neither of these works. Unredirecting the window seems to have no effect at all. Unredirecting the root just leaves me with a blank (background color) screen.
Anyone have any suggestions?