webgl未使用獨立顯示卡報告
- 2022 年 3 月 14 日
- 筆記
0x00 楔子
最近客戶在使用我們的的三維可視化平台的時候,總是會出現瀏覽器崩潰,webgl context lost的情況。 這種請一般出現在電腦配置很低的電腦上,比如沒有獨顯,只有很小現存的集成顯示卡的電腦。
但是客戶的電腦大部分都是配置還不錯,有獨立的顯示卡。
經過摸索和分析,最終發現了問題所在:就是電腦根本沒有用上獨立顯示卡,也就是說雖然硬體上有獨立顯示卡,但是實際上三維程式還是用的集成顯示卡,導致跑不動三維程式。
如何判斷三維程式是否用上了獨立顯示卡呢,其實我們可以打開電腦的任務管理器,打開”性能”標籤,一般可以看到兩個GPU(Intel開頭的是集成顯示卡,NVIDIA開頭的是獨立顯示卡)
從圖中,可以看出 GPU0(集顯) 使用率搞到88%,而GPU1(獨顯) 使用率卻未0,表示三維應用程式未使用獨顯。
0x01 原因探究
經過測試,發現電腦不使用獨立顯示卡的原因大概分為幾類:
驅動未正確安裝
獨立顯示卡的驅動未安裝,或者顯示卡的驅動未正確安裝,導致電腦的獨立顯示卡不能使用。 可以通過電腦的設備管理器查看是否又獨立顯示卡的適配器,如果沒有,多半是未有安裝顯示卡驅動。
顯示器未接獨立顯示卡
如果是台式機接主板自帶的VGA/DVI/HDMI都是內顯負責輸出和運算,不接獨顯的介面不能發揮任何作用。反之,接了獨顯,那麼CPU內顯也會自動屏蔽不發揮作用。典型的例子就是你接了獨顯,比如N卡,只會有一個NVIDIA控制面板,而不會再出現一個英特爾核芯顯示卡控制介面。
如果是筆記型電腦的話,一般帶DP介面的一定是獨顯介面,其他介面如HDMI,VGA都是內顯輸出,但是筆記型電腦硬性規則都是內顯負責畫面輸出,獨顯負責需要運行的3D應用程式,這是英特爾強制規定的,所以筆記型電腦除了有N卡獨顯的NVIDIA控制面板以外,還會有英特爾核芯顯示卡控制面板。值得注意的是,在6代以後的筆記型電腦,有些bios提供了屏蔽內顯的選項,有些是可以允許自由切換,或者一些超高端的筆記型電腦,顯示卡為1070,1080甚至1080 SLI的,直接出廠就屏蔽了內顯,沒有這個內顯的需要。測試都表明,內顯在1070以上的筆記型電腦機型,某些優化不到位的遊戲會拖累獨顯性能,導致幀數下降,整體也比單獨運行獨顯幀數要稍低。
程式指定使用集顯
筆記型電腦電腦,電腦可以同時使用集顯和獨顯。
打開電腦NVIDIA 控制面板,可以指定程式使用獨顯還是集顯,如下圖所示:
如果指定了瀏覽器,比如chrome使用集成顯示卡,那麼webgl也不會用到獨立顯示卡。
0x02 如何解決
其實看了前面的「原因探究」,可以很方便的給出相應的解決方案。
如果未安裝顯示卡驅動,就安裝顯示卡驅動即可。安裝的時候,需要注意選擇正確的版本。
如果是台式機,檢查顯示器接頭是否接在獨立顯示卡的介面上,如果接在集成顯示卡的介面上,改變介面即可。
如果是程式指定了集顯,改成使用獨顯即可。
過程不在詳述。
0x03 結語
如果發現電腦配置不錯,但是簡單的三維應用很卡,多半是上述原因。
如果對可視化感興趣,可以和我交流,微信541002349。
關注公號「ITMan彪叔」 可以及時收到更多有價值的文章。