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!
{
    "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"
           ]
        }
    ]
}
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to