Qt GPU渲染得問題


配置

環境:win10,i5-8400 內置GPU UHD 630

前言

QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts),如果開啟,parallel虛擬機會花屏,如果關閉,parallel不花屏,但是cpu占用變高。這是因為虛擬機的opengl驅動實現有問題。

QtWebEngine::initialize()是只針對qml的webengine模塊。

This has the same effect as setting the Qt::AA_ShareOpenGLContexts attribute with QCoreApplication::setAttribute before constructing QGuiApplication. 

由這段我們知道,這個和設置那個是一樣的setAttribute(Qt::AA_ShareOpenGLContexts),只是次序不同而已(一個至app前,一個至app后qml前。
首先設置AA_ShareOpenGLContexts這個以后,對瀏覽器的參數列表才能生效,也就是AA_ShareOpenGLContexts這個是總開關,然后再細分設置參數。

1 關於渲染

如果一個含有QWebengine的程序認為是兩個程序,qt程序默認是使用AA_UseDesktopOpenGL的,經測試,如果主動設置為AA_UseSoftwareOpenGL,在視頻頁面,本來gpu僅需要10%左右,那么cpu模擬則會多出20~50%的cpu,而且還是但視頻頁面的。所以,qt主程序一般情況下不要使用這個。需要軟件渲染目前已知是在vmware虛擬機上。

setAttribute除了Qt::AA_ShareOpenGLContexts,其他都是對主程序有作用。對於webengine則是通過參數列表來實現。

  • AA_UseSoftwareOpenGL會極大的加深cpu使用率,所以對於圖形圖像要謹慎使用此操作。

AA_ShareOpenGLContexts + AA_UseOpenGLES

webengineview 全部cpu,未啟用
qml 視頻使用gpu

AA_ShareOpenGLContexts + AA_UseDesktopOpenGL

webengineview 大部分gpu,Rasterization disable
qml 視頻使用gpu
cpu和gpu比AA_UseOpenGLES使用率略低。

AA_ShareOpenGLContexts + AA_UseSoftwareOpenGL

webengineeview全部cpu,未啟用
qml使用cpu

性能排名

DesktopOpenGL > OpenGLES > Soft
RX580支持開啟web 使用gpu,即context共享,但是不可主動開啟gpu光柵化
RX580開啟GLES,qml的視頻區域渲染是gpu,但是web里面,畫筆及其卡頓,都是cpu運算的。但是web的chrome://gpu頁面卻顯示軟件模擬,能否說明es的設置是無效的?但是為何gpu也的確會占用呢?opengles 和台式機顯卡有什么關系?不可用嗎?

關於webengineview的測試

默認情況下和cef的差異性

1 忽略黑名單后(--ignore-gpu-blacklist)


多了一項,但是surface synchronization仍然不行

2 開啟光柵化 (--enable-gpu-rasterization)

僅有Surface Synchronization一項不同,另一項是不可知,和可知不可用不同。

實機測試

測試流程:上古機器首先檢驗是否支持web加速,如果支持,逐步放開內部參數設置。
問題1:enable光柵化,如果不支持,會出現什么情況?會默認使用不加速的嗎?
問題2:如果忽略了黑名單列表會出現什么現象?

AMDx255,HD4300亮機卡,娛樂大師跑分23000,2235。支持GL3.2/3.3 core(為何GL2.0core不支持?),不支持opengles,500G,7200轉,啟動時間2.65 1.65 2.25 1.40 1.39
畫筆繪制低,尚可勉強使用

AMDx255,Nvidia6150se 430自帶亮機卡,娛樂大師,23000,455,支持gl2.0/2.1 noprof,其余全部不支持
畫筆不可用狀態,更慢
啟動時間2.00 1.06 0.98 1.5 1.06

附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM