diff --git a/qt_conf/gpu_driver_bug_list.json b/qt_conf/gpu_driver_bug_list.json new file mode 100644 index 0000000..9f4b7da --- /dev/null +++ b/qt_conf/gpu_driver_bug_list.json @@ -0,0 +1,250 @@ +{ + "name": "Qt built-in + some Chromium 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" + ] + }, + { + "id": 7, + "description": "AMD FirePro V5900 driver causes crashes in Direct3D on Windows.", + "vendor_id": "0x1002", + "device_id": ["0x6707"], + "os": { + "type": "win" + }, + "features": [ + "disable_angle" + ] + }, + { + "id": 8, + "description": "Standard VGA: Insufficent support for OpenGL, D3D9 and D3D11", + "vendor_id": "0x0000", + "device_id": ["0x0000"], + "os": { + "type": "win" + }, + "features": [ + "disable_desktopgl", "disable_d3d11", "disable_d3d9" + ] + }, + { + "id": 9, + "description": "Intel 945 crash (QTBUG-40991)", + "vendor_id": "0x8086", + "device_id": [ "0x27A2" ], + "os": { + "type": "win" + }, + "features": [ + "disable_desktopgl" + ] + }, + { + "id": 10, + "description": "Intel(R) HD Graphics IronLake (Arrandale) crashes on makeCurrent QTBUG-53888", + "vendor_id": "0x8086", + "device_id": [ "0x0046" ], + "os": { + "type": "win" + }, + "features": [ + "disable_desktopgl" + ] + }, + { + "id": 11, + "description": "Intel driver version 8.15.10.1749 causes GPU process hangs (QTBUG-56360)", + "vendor_id": "0x8086", + "os": { + "type": "win" + }, + "driver_version": { + "op": "=", + "value": "8.15.10.1749" + }, + "features": [ + "disable_desktopgl", "disable_d3d11", "disable_d3d9" + ] + }, + { + "id": 12, + "description": "Intel HD Graphics crash in conjunction with shader caches (QTBUG-64697) - disable for all Intel GPUs", + "vendor_id": "0x8086", + "os": { + "type": "win" + }, + "features": [ + "disable_program_cache" + ] + }, + { + "id": 13, + "description": "Disable DesktopGL on Windows with Mobile Intel(R) 4 Series Express Chipset Family graphics card (QTBUG-58772)", + "vendor_id": "0x8086", + "device_id": [ "0x2A42" ], + "os": { + "type": "win" + }, + "features": [ + "disable_desktopgl" + ] + }, + + { + "id": 70, + "description": "Disable D3D11 on older nVidia drivers", + "cr_bugs": [349929], + "os": { + "type": "win" + }, + "vendor_id": "0x10de", + "driver_version": { + "op": "<=", + "value": "8.17.12.6973" + }, + "features": [ + "disable_d3d11" + ] + }, + { + "id": 86, + "description": "Disable use of Direct3D 11 on Matrox video cards", + "cr_bugs": [395861], + "os": { + "type": "win" + }, + "vendor_id": "0x102b", + "features": [ + "disable_d3d11" + ] + }, + { + "id": 87, + "description": "Disable use of Direct3D 11 on older AMD drivers", + "cr_bugs": [402134], + "os": { + "type": "win" + }, + "vendor_id": "0x1002", + "driver_version": { + "op": "<", + "value": "8.17.10.1070" + }, + "features": [ + "disable_d3d11" + ] + }, + { + "id": 92, + "description": "Old Intel drivers cannot reliably support D3D11", + "cr_bugs": [363721], + "os": { + "type": "win" + }, + "vendor_id": "0x8086", + "driver_version": { + "op": "<=", + "value": "9.18.0.0" + }, + "features": [ + "disable_d3d11" + ] + }, + { + "id": 100, + "description": "Disable Direct3D11 on systems with AMD switchable graphics", + "cr_bugs": [451420, 721121, 755722], + "os": { + "type": "win", + "version": { + "op": "<", + "value": "10" + } + }, + "driver_version": { + "op": "<", + "value": "20.19.0.32837" + }, + "multi_gpu_style": "amd_switchable", + "features": [ + "disable_d3d11" + ] + } + ] +} diff --git a/qt_conf/win.qrc b/qt_conf/win.qrc index df8db39..fcc0acf 100644 --- a/qt_conf/win.qrc +++ b/qt_conf/win.qrc @@ -2,4 +2,7 @@ qt_win.conf + + gpu_driver_bug_list.json + diff --git a/ui/gl/gl_detection.cpp b/ui/gl/gl_detection.cpp index 7b3f851..2f1433d 100644 --- a/ui/gl/gl_detection.cpp +++ b/ui/gl/gl_detection.cpp @@ -49,6 +49,16 @@ Capabilities CheckCapabilities(QWidget *widget) { LOG_ONCE(("OpenGL: Force-disabled.")); return {}; } + + static const auto BugListInited = [] { + if (!QFile::exists(":/misc/gpu_driver_bug_list.json")) { + return false; + } + LOG(("OpenGL: Using custom 'gpu_driver_bug_list.json'.")); + qputenv("QT_OPENGL_BUGLIST", ":/misc/gpu_driver_bug_list.json"); + return true; + }(); + auto format = QSurfaceFormat(); if (widget) { if (!widget->window()->windowHandle()) {