GTK OpenGL 內容情境錯誤
某些情況下,Ghostty 可能會啟動失敗,並提示 “無法取得 OpenGL 內容情境” 的錯誤。此頁詳細說明 該錯誤及其解決方法。
Ghostty GTK 應用程式使用 OpenGL 進行渲染。要用 OpenGL 渲染,Ghostty 需要先從 GTK 取得一個 “OpenGL 內容情境”。 它為我們提供了執行 OpenGL 命令所需的命名空間。
在極少數情況下,GTK 可能無法為 Ghostty 提供 OpenGL 內容情境。發生這種情況時,Ghostty 無法渲染任何內容,只能 顯示此錯誤。
這始終是環境問題。 OpenGL 內容情境由 GTK 提供給 Ghostty,Ghostty 自己通常沒有 直接解決它的辦法。最常見的問題原因是程式庫、驅動。 程式包版本造成的問題。此頁將試著提供一些協助, 讓你追查問題。
如果你想盡快讓 Ghostty 跑起來,可以嘗試以下方法。
-
安裝二進位套件。 如果你正在 從源碼建置,請試著改用二進位套件。二進位檔通常在 更受控的環境中構建,與特定發行版及其程式庫相容。
-
檢查你的 GPU 驅動程式。 GPU 驅動程式是導致 OpenGL 問題的常見原因。試著更新或降級你的 GPU 驅動程式,尤其當你 正在使用專有驅動程式時。
-
僅使用系統套件從源碼建置 Ghostty。 如果你在 Nix 開發環境下建置 Ghostty,請試著 僅使用系統套件從源碼建置。具體做法見 從源碼建置 的 說明 (但請忽略「使用 Nix 建置」一節)。
Important
此節刻意避免深究該問題的根本原因。如果你想要更清楚地 瞭解根本原因,請閱讀此節後面的內容。
導致此錯誤的一個常見原因是程式庫版本不匹配。 GTK、Mesa、libX11/libwayland 與核心之間的平衡十分脆弱。
導致此錯誤最常見的第一個原因,是使用 Nix 開發環境 建置 Ghostty。 我們推薦在開發時使用該環境, 但它會固定這些程式庫的幾個版本,它們可能 與你的全域系統不相容。修復方法:試著僅使用系統依賴套件建置 Ghostty,或直接使用系統套件中的 Ghostty。 你可以按照 從源碼建置 的說明 進行操作(但請忽略「使用 Nix 建置」一節)。
另一個常見原因是系統套件過舊。 Linux 發行版往往會為你處理好這種脆弱的平衡,因此 請試著更新整個系統(或者至少更新 上面提到的那幾個套件)。這通常會讓系統恢復到 Ghostty 能正常工作的一致狀態。
檢查你的 GPU 驅動程式。 試著更新或降級你的 GPU 驅動程式。 我們遇過很多 GPU 驅動程式變更導致 GTK 中的 OpenGL 失效的情況。
-
Mesa 25.2.0 Regression。 Ghostty 不打包 libwayland 用戶端程式庫,但在 Nix 開發環境下從源碼建置 Ghostty 時 會使用與系統不同的 libwayland 用戶端程式庫。
-
GTK4 + Nvidia + X11。 我們不清楚觸發該問題的確切組合,但在某些情境下, GTK4(Ghostty 所必需)、Nvidia 和 X11 的組合會引發此問題。 更換驅動程式版本或改用 Wayland 可以解決。