[Interest] Qt do not detect AMD Radeon on Windows

YuriyPryyma priymayuriy at gmail.com
Fri Aug 5 17:04:51 CEST 2016


When user have machine with two video cards: integrated Intel and AMD 
Radeon(I have tested on AMD Radeon R7 M265). Qt internal class 
GpuDescription 
<https://code.woboq.org/qt5/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp.html#_ZN14GpuDescription6detectEv>return 
properties of integrated video card even if user manually select AMD 
Radeon for Qt application. The interesting thing is that OpenGL property 
of context "GL_RENDERER" return correct video card in both 
cases(manually set to use integrated or amd ). Example of getting 
"GL_RENDERER" 
<https://code.woboq.org/qt5/qttools/src/qtdiag/qtdiag.cpp.html#162>.
I`m not sure if it is the problem of amd vendor of laggy directx 
function GetAdapterIdentifier. I want to note that GetAdapterIdentifier 
work fine for Nvidia video cards when they with integrated Intel.

This bug have influences on user when qt dynamically load drivers 
<https://code.woboq.org/qt5/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp.html#230>.  
If user intel video card is in black list(see features: 
"disable_desktopgl" in attached default.json) qt will use ANGLE 
driver(d3dcompiler_47.dll). Angle driver has opengl support 2.0. In this 
case qt will use ANGLE even if user has video card with much higher 
opengl support. If I disable this file(set QT_OPENGL_BUGLIST) my opengl 
context is using AMD video card. To debug you could set QT_LOGGING_RULES 
to qt.qpa.gl=true.

I seems to me like a bug. Should this case be fixed? I think we could 
could check render string GL_RENDERER before using ANGLE. Match this 
string with adapters description list(see EnumAdapters 
<https://msdn.microsoft.com/en-us/library/windows/desktop/bb174538%28v=vs.85%29.aspx>). 
If they match and continent "AMD" we should take deviceID from the item 
in list. Then with this deviceID we could do our checks.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160805/dbc0b6ba/attachment.html>
-------------- next part --------------
{
    "name": "Qt built-in GPU driver blacklist",
    "version": "5.6",
    "entries": [
        {
            "id": 1,
            "description": "Desktop OpenGL is unreliable on some Intel HD laptops (QTBUG-43263)",
            "vendor_id": "0x8086",
            "device_id": [ "0x0A16" ],
            "os": {
                "type": "win"
            },
            "driver_version": {
                "op": "<=",
                "value": "10.18.10.3277"
            },
            "features": [
                "disable_desktopgl"
            ]
        },
        {
            "id": 2,
            "description": "Intel Q965/Q963 - GMA 3000 has insufficient support of opengl and directx",
            "vendor_id": "0x8086",
            "device_id": [ "0x2992" ],
            "os": {
                "type": "win"
            },
            "features": [
                "disable_desktopgl",
                "disable_angle"
            ]
       },
       {
           "id": 3,
           "description": "No OpenGL on Intel G33/G31 (QTBUG-47522)",
           "vendor_id": "0x8086",
           "device_id": [ "0x29C2" ],
           "os": {
               "type": "win"
           },
           "features": [
               "disable_desktopgl"
           ]
       },
       {
           "id": 4,
          "description": "Intel HD Graphics 3000 crashes when initializing the OpenGL driver (QTBUG-42240)",
          "vendor_id": "0x8086",
          "device_id": [ "0x0102", "0x0106", "0x010A", "0x0112", "0x0116", "0x0122", "0x0126" ],
          "os": {
              "type": "win"
          },
          "features": [
              "disable_desktopgl"
          ]
       },
       {
           "id": 5,
           "description": "Intel GMA 3150 (QTBUG-43243), Mobile Intel 945GM (QTBUG-47435) crash",
           "vendor_id": "0x8086",
           "device_id": [ "0xA001", "0xA011", "0x27A0" ],
           "os": {
               "type": "win"
           },
           "features": [
               "disable_desktopgl", "disable_angle"
           ]
        },
        {
           "id": 6,
           "description": "Intel(R) HD Graphics 4000 / 5500 cause crashes on orientation changes in fullscreen mode (QTBUG-49541)",
           "vendor_id": "0x8086",
           "device_id": [ "0x0166", "0x1616" ],
           "os": {
               "type": "win"
           },
           "features": [
               "disable_rotation"
           ]
        }
    ]
}


More information about the Interest mailing list