Important: Please read the Qt Code of Conduct -

VirtualBox OpenGL/Angle questions

  • I was just testing virtualbox with my Qt Quick application (which works nicely on every other platform I've tried) and it appears there's something wonky in the virtualbox opengl driver, as well as the 'experimental' d3d drivers.

    The OpenGL driver appears to tell Qt that it does everything Qt wants, and the simpler parts of my application render and work appropriately; however, when QtWebEngine launches, it crashes with an OpenGL implementation not supported error.

    This only happens if the virtualbox guest is enabled to use hardware acceleration (turning 3D acceleration off eliminates the problem), and if hardware acceleration is off it appears to use the openglsw32.dll software rasterizer and works fine (if a little ponderous.)

    If hardware acceleration is enabled and I work around the problem by setting the QT_OPENGL environment variable to 'software' - I get the same result as when HW Acceleration is disable (everything works fine, just a little slow.)

    If HW Accerlation is enabled and I set QT_OPENGL to 'angle' - it crashes in exactly the same way as the default OpenGL implementation does, except it crashes as soon as the simpler parts of my UI comes up.

    It seems very likely that there are problems with virtualbox's OpenGL and D3D drivers - but I was wondering why Qt doesn't failover to software rendering if the HW OpenGL driver fails. I presume it's because it's too far down the initialization chain and resource usage; ergo, it can't exactly 'back up' and start over - or am I missing something?

    I plan to simply document this as a "if you're using virtualbox you need to either (a)disable hw acceleration or (b)define QT_OPENGL=software, but I thought I would check here first in case someone had a better solution.


Log in to reply