GNU/Linux >> Linux の 問題 >  >> Linux

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

KDE SC 4.5.0には、私のものを含むいくつかのビデオカードにいくつかの問題があります。リリース時に、Archはいくつかの回避策を推奨しました。そのうちの1つは

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

私はそれが最も簡単で最良の方法であると判断しました。しかし、それが何をするのか、それが私のシステムにどのように影響するのかはわかりません。デフォルトより遅いですか?問題を監視し、修正したら後で無効にすることを忘れないでください。

承認された回答:

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

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

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

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

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

直接レンダリングの場合

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

OpenGLはネットワーク上で動作するように設計されているため、間接レンダリングはアーキテクチャのナイーブな実装よりも高速です。つまり、一度に大量のコマンドを送信できます。ただし、コンテキストスイッチとプロトコルの処理に費やされるCPU時間に関しては、いくらかのオーバーヘッドがあります。


Linux
  1. 「lc_all=c」は何をしますか?

  2. 何をしますか?

  3. Exec 3とは何ですか?

  1. Bamfdaemonは何をしますか?

  2. ulimit -s unlimited は何をしますか?

  3. init は正確に何をしますか?

  1. NGINXとは何ですか?それはどのように機能しますか?

  2. pwd は何を出力しますか?

  3. echo $ とは何ですか?行う?