[Qtwebengine] QtWebEngine + ANGLE

Jonathan Mérel jmerel at druide.com
Wed Aug 8 15:21:14 CEST 2018


We have tried different settings, to ensure maximum compatibility with old PCs, and we found that "QMLSCENE_DEVICE=softwarecontext" is a good option.

  * QT_OPENGL= desktop (ES2) ==> crash on some PCs, Doesen't support RemoteFX.
  * QT_OPENGL= angle + QT_ANGLE_PLATFORM = d3d11 ==> "Failed to create OpenGL context" in VMs.
  * QT_OPENGL= angle + QT_ANGLE_PLATFORM = warp ==> flicker, resize bugs + black screen with RDP.
  * QT_OPENGL= software ==> black screen with RDP.
  * QMLSCENE_DEVICE=softwarecontext ==> no problems yet, but slower than the other options.

We also tried QT_OPENGL= desktop (MESA) but I don't recall the result.


On 2018-08-08 4:11 AM, Michael Bruning wrote:
> Hi Kevin,
>> On 8. Aug 2018, at 04:54, Kevin Ushey <kevinushey at gmail.com> wrote:
>> Hi all,
>> If I'm understanding correctly, QtWebEngine doesn't support ANGLE, as per e.g.
>>      http://lists.qt-project.org/pipermail/qtwebengine/2017-August/000461.html
>>      https://wiki.qt.io/QtWebEngine/Rendering#Rendering_without_the_GPU
> You can use ANGLE with Qt WebEngine on Windows, it just comes with some limitations:
>     - we have to turn hardware acceleration off for the Chromium part
>     - WebGL does not work
> This is due to the fact that when running WebEngine, we usually have two threads accessing the GPU, one being the Qt SceneGraph thread and the other being Chromium’s GPU thread. ANGLE does not handle multithreaded access well (e.g. it may crash or render some weird artefacts) and for that reason, we switch the Chromium part to not use the GPU. The Qt SceneGraph will still use HW acceleration, but Chromium’s content will be rendered in SW prior to being uploaded to the GPU by the SceneGraph.
>> For background: we have a number of users on Windows with Intel integrated graphics cards, and when these users attempt to use the default desktop OpenGL backend, they often see crashes (e.g. when attempting to load the associated DLL ig9icd64.dll) or in other cases weird rendering artifacts (for example, where the page contents are rendered offset from the 'true' location on the screen). In most cases, upgrading the graphics card drivers resolves the issue, but many users are unable or unwilling to do this. Switching to the software renderer is also a viable workaround for these users, but application performance then suffers. This is especially true for laptops with high DPI displays.
> ANGLE can be used to work around a lot of this driver trouble. If you can live with the limitations mentioned above, switching to ANGLE on Windows may be the way to go for you.
>> The Chromium team in a 2015 bug report (https://bugs.chromium.org/p/chromium/issues/detail?id=561542) suggests that '--use-gl=desktop' is unmaintained, stating:
>>      I'd suggest --use-angle=gl instead. That code path's going to be supported in the future but --use-gl=desktop on Windows is effectively unmaintained.
>> and IIUC Chrome by default uses ANGLE by default for rendering (hence making this the more tested rendering pipeline).
>> Are there any plans to bring support for ANGLE to QtWebEngine? Am I correct that switching to ANGLE could be a panacea for this family of rendering issues? Or is there some other way that I could further configure the default desktop OpenGL renderer in Qt / QtWebEngine / Chromium that might help alleviate these sorts of issues while still using hardware accelerated rendering?
>> Thanks,
>> Kevin
> Best regards,
> Michael
> --
> Michael Brüning
> Senior Software Engineer
> The Qt Company GmbH
> Rudower Chaussee 13
> D-12489 Berlin
> http://qt.io
> Geschäftsführer: Mika Pälsi,
> Juha Varelius, Mika Harjuaho
> Sitz der Gesellschaft: Berlin,
> Registergericht: Amtsgericht
> Charlottenburg, HRB 144331 B
> --
> _______________________________________________
> QtWebEngine mailing list
> QtWebEngine at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qtwebengine

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qtwebengine/attachments/20180808/b9644aa5/attachment.html>

More information about the QtWebEngine mailing list