Seite 1 von 1

QGLWidget und Kwin

Verfasst: 13. Oktober 2010 17:03
von gophix
Hallo,

ich programmiere eine Qt-Anwendung für Linux mit einem QGLWidget. Die Anwendung läuft problemlos, wenn das Compositing-System von KWin (Fenstermanager, ähnlich Compiz) deaktiviert ist. Ist das Compositing-System aktiviert, so ist das GL-Widget kurz sichtbar und wird dann vom dahinterliegenden(!) Fenster überdeckt. Kurz sichtbar heisst: Sobald die paintGL()-Methode aufgerufen wird (Maus move/click, etc.) sieht man den Inhalt kurz aufflackern und wird direkt danach wieder vom dahinterliegenden(!) Fenster überzeichnet. Den Render Context habe ich mit makeCurrent() aktiviert.

Es sieht aus, als wäre dies ein Problem des X11-Servers. Das Problem tritt erst seit einem Update auf ATI Catalyst 10.9 (zuvor 10.4) auf.

Hat jemand eine Idee, wie man mit aktiviertem Compositing-System das GL-Widget permanent sichtbar macht?
Bzw. gibt es hierfür eine Methode mit Flag, das KWin das Fenster nicht überzeichnen lässt?

Verfasst: 14. Oktober 2010 07:52
von franzf
Prinzipiell wäre ein kleines kompilierbares Minimalbeispiel nicht schlecht, damit die Leute hier dein Programm testen können, und auch schauen, was du so treibst.
Wenn der Fehler erst seit dem Upgrade auf den neuesten Grafiktreiber auftritt, liegt doch der Schluss nahe: der Treiber baut Murks :D Oder es gibt Inkompatibilitäten zwischen Catalyst und KWin. Das kannst du versuchen auszuschließen, indem du mal kurz compiz anwirfst!

Die beste Alternative wäre aber: tritt den Catalyst in die Tonne! Die freien ATI-Treiber scheinen mittlerweile richtig gut zu sein! Dort gibt es zwar auch Fehler (momentan ist mir nur eine Inkompatibilität mit dem "blur"-Effekt bekannt), aber das System, liegt offen und die Releasezyklen sind kürzer.

BTW.: welche Grafikkarte hast du eigentlich? Ist sie (noch) als Supported gelistet?