Xorg

LIBGL_ALWAYS_INDIRECT=1 實際上做了什麼?

  • November 26, 2019

KDE SC 4.5.0 對包括我的一些影片卡有一些問題。在發佈時,Arch 推薦了幾種解決方法。其中之一是

在啟動 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 時間方面存在一些成本。

引用自:https://unix.stackexchange.com/questions/1437