最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Linux雙顯卡Wayland環(huán)境開應用獨顯被喚醒的解決方法

2023-04-19 20:12 作者:怎么取名字這么難額啊  | 我要投稿

正如標題所說,在雙顯卡筆記本里,無論你使用的是什么Linux發(fā)行版,Wayland環(huán)境下打開應用總會有點“遲滯感”(延遲感)。這是因為獨立顯卡被從休眠中喚醒造成的延遲。

速通版:

在/etc/environment文件里添加一行:

__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json 注銷/重啟后即可生效。

注意:此方法僅對原生Wayland應用生效,XWayland因為設(shè)計問題無法繞過。對于事情來龍去脈感興趣的可以接著往下看。

詳細版:

所以一切都開始于我在Discord里面看到的一句抱怨:

有人在抱怨nautilus(GNOME的文件管理器)打開有延遲。這個問題實際上自從我使用Wayland以來就一直存在的,其原因就是在打開有3D加速功能的應用時,應用會把PCI總線上的設(shè)備都掃描一遍,于是獨立顯卡被喚醒。這就造成了一定的延遲感。 之前我也嘗試尋找解決方案,但是碩大的互聯(lián)網(wǎng)居然搜不出一個解決方案......有點令我詫異。 不過世界上還是大神多吶,馬上就有人一針見血的指出了可能存在的問題:是glvnd這個庫搞的鬼。(倉庫地址:https://gitlab.freedesktop.org/glvnd/libglvnd)具體是干啥的?當一個系統(tǒng)中存在多個可用的OpenGL加速器的時候,就需要這個庫來進行抽象,把不同硬件的驅(qū)動調(diào)用方法給統(tǒng)一起來。 (這個庫居然是英偉達開發(fā)的,但是也為Intel、AMD、Mesa這些驅(qū)動所用,已經(jīng)事實上是一個公用庫了) 然后,在這個庫的README里面,有這么一部分(EGL dispatching): 機翻:EGL 不能像 GLX 那樣依靠向 X 服務(wù)器詢問供應商名稱,因此它會枚舉并加載每個可用的供應商庫。還需要加載每個供應商以支持擴展,例如 EGL_EXT_device_enumeration 所以在Wayland下打開原生應用的時候,由于沒有直接獲取渲染設(shè)備的方法,那就只能先掃描一遍PCI總線,確定有哪些可用的設(shè)備后,應用才能開啟。 值得注意的是,開發(fā)者專門為這一部分寫了一個小文檔(icd_enumeration.md)大佬指出以下這部分可能有幫助: 機翻:如果設(shè)置了環(huán)境變量 __EGL_VENDOR_LIBRARY_FILENAMES,它是一個以冒號分隔的 JSON 文件名列表。這些文件中描述的 ICD 按給定順序加載。沒有加載其他 ICD 其中所說的文件目錄,位于“/usr/share/glvnd/egl_vendor.d/”下,打開可以看見里面有兩個文件:一個是英偉達的,另一個是mesa(也就是AMD或者Intel的)。那么按照這個思路,我們可以在系統(tǒng)變量中設(shè)置__EGL_VENDOR_LIBRARY_FILENAMES,這樣一來,每當EGL應用(原生Wayland應用)開啟時,就能直接繞過掃描設(shè)備環(huán)節(jié)。 所以,在/etc/environment文件里添加一行 “__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json”,重啟,打開原生Wayland應用進行測試,應用可以秒開,沒有延遲(測試了火狐以及GNOME文件管理器)

那么XWayland什么的有在搞嗎...:

直接上結(jié)論:nope。因為X11應用在開啟之前需要連接所有的GPU設(shè)備,那么就不可避免的要喚醒獨顯。但是如果你跑在原生X11下就不會出現(xiàn)這個情況了(大部分時候不會)。個人猜測:XWayland畢竟不是原生的X11,在原生X11下,掃描GPU這一步可能會在系統(tǒng)開啟之前就已經(jīng)完成了,現(xiàn)在用Wayland替換掉X的底層,那么就不可避免的要重新掃描一遍設(shè)備。

有更好的解決方法嗎?

辣當然了!但是從開發(fā)者專門為這事寫個小文檔來看,想從底層改動這個機制可能并非容易的事。首先glvnd需要加入相關(guān)代碼,其次,Wayland協(xié)議也需要修改,加入新的protocol。如果想讓XWayland也做到的話,那X11的源代碼也需要改。 只有哪一天三方開發(fā)者都達成共識,一起投入進去才能最終了結(jié)這事。畢竟底層protocol的變動不是拍拍腦袋就決定的事(樂

Linux雙顯卡Wayland環(huán)境開應用獨顯被喚醒的解決方法的評論 (共 條)

分享到微博請遵守國家法律
庆云县| 横山县| 南平市| 岢岚县| 册亨县| 河西区| 黎川县| 宜丰县| 通州市| 镇远县| 郁南县| 西安市| 紫金县| 蒙城县| 平泉县| 尖扎县| 邢台市| 南投市| 社旗县| 黔西县| 涞水县| 德保县| 洮南市| 阿克苏市| 寿光市| 加查县| 新沂市| 宜城市| 延津县| 武定县| 益阳市| 五指山市| 聂荣县| 双流县| 平利县| 镇坪县| 阳西县| 安图县| 武义县| 新巴尔虎右旗| 休宁县|