LIBGL_ALWAYS_INDIRECT = 1は実際に何をしますか?

LIBGL_ALWAYS_INDIRECT = 1は実際に何をしますか?

KDE SC 4.5.0には、一部のグラフィックカード(マイグラフィックカードを含む)にいくつかの問題があります。リリース後Archは複数のソリューションをお勧めします。その一つは

KDEを開始する前に「LIBGL_ALWAYS_INDIRECT = 1」エクスポート

私はこれが最も簡単で良い方法だと思います。しかし、私はそれが何をしているのか、それが私のシステムにどのような影響を与えるのかわかりません。デフォルトより遅いですか?この問題を引き続き確認し、問題が解決したら無効にする必要がありますか?

ベストアンサー1

間接レンダリングは、OpenGL コマンドの送信に GLX プロトコルが使用され、X.org が実際の描画を実行することを意味します。

直接レンダリングこれは、アプリケーションが最初にメサを介してX.orgと通信することなくハードウェアに直接アクセスできることを意味します。

直接レンダリングは、X.orgプロセスのコンテキストを変更する必要がないため、より高速です。

言う:どちらの場合も、レンダリングはGPUによって実行されます(または技術的にはGPUによって実行されます)。ただし、間接レンダリングでは、プロセスは次のようになります。

  1. プログラム呼び出しコマンド
  2. コマンドはGLXプロトコルを介してX.orgに送信されます。
  3. X.orgはハードウェア(GPUなど)を呼び出して画像を描画します。

直接レンダリング

  1. プログラム呼び出しコマンド
  2. コマンドはGPUに送信されます。

OpenGLはネットワーク経由で動作するように設計されているため、間接レンダリングは複数のコマンドを一度に送信できる単純なアーキテクチャ実装よりも高速です。ただし、コンテキストの切り替えとプロトコルの処理に費やされるCPU時間の点では、わずかなオーバーヘッドがあります。

おすすめ記事