0

このアプローチを使用して、OpenGL アプリケーションの背景を透明にしていました (Compiz と共同で)。

それは完璧に動作しますが、私が認識していた事実が 1 つあります。私のアプリケーションが透明なウィンドウを開くとすぐに (OpenGL 描画が行われたかどうかに関係なく)、Xorg プロセスの CPU 負荷が ~30% に増加します。

誰でもこの動作を説明できますか? Xserver はこのアプローチによってバイパスされ、全体の処理はグラフィックス カードによって行われると考えていましたか?

4

1 に答える 1

0

誰かがこの振る舞いを説明できますか?Xserverはこのアプローチによってバイパスされ、処理全体がグラフィックカードによって行われると思っていましたか?

Xサーバーは回避されず、他の部分のみが使用されます。合成で重要なのは、ウィンドウの内容がXサーバーが管理するXドローアブル(ピックスマップ)として表されることです。それを合成するために、Xサーバーは、合成者によって要求されたテクスチャへの転送を実行する必要があります。これにより、管理オーバーヘッドが発生し、パフォーマンスが低下する可能性があります。

また、そこにあるほとんどのコンポジターのコードはひどいものです(Compiz / Metacity / KWinを書いた人々のように、OpenGLとGPUがどのように機能するかまったくわかりません)。これは、TODOリストにあるプロジェクトの1つです(ロボトミー化されていない、まともなコンポジターを作成しています)。

于 2012-05-09T18:50:46.960 に答える