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()) {