From 7dd2c4d8a09b62372d2621af4835634b2252f824 Mon Sep 17 00:00:00 2001 From: Nate Weibley Date: Sat, 13 Feb 2016 12:51:07 -0500 Subject: [PATCH] Custom OpenGL buglist to workaround broken OpenGL drivers in Windows For issue #2776 --- qgcresources.qrc | 3 +++ resources/opengl/buglist.json | 48 +++++++++++++++++++++++++++++++++++ src/main.cc | 3 +++ 3 files changed, 54 insertions(+) create mode 100644 resources/opengl/buglist.json diff --git a/qgcresources.qrc b/qgcresources.qrc index 66cea287d..5760508c9 100644 --- a/qgcresources.qrc +++ b/qgcresources.qrc @@ -236,4 +236,7 @@ src/FirmwarePlugin/APM/apm.pdef.xml + + resources/opengl/buglist.json + diff --git a/resources/opengl/buglist.json b/resources/opengl/buglist.json new file mode 100644 index 000000000..5d7ed7a4a --- /dev/null +++ b/resources/opengl/buglist.json @@ -0,0 +1,48 @@ +{ + "name": "QGroundControl OpenGL Driver Blacklist", + "version": "5.5", + "entries": [ + { + "id": 1, + "description": "Desktop OpenGL is unreliable on some Intel HD laptops (QTBUG-43263, QTBUG-42240)", + "vendor_id": "0x8086", + "device_id": [ "0x0A16" ], + "os": { + "type": "win" + }, + "driver_version": { + "op": "<=", + "value": "10.18.10.3277" + }, + "features": [ + "disable_desktopgl" + ] + }, + { + "id": 2, + "description": "Desktop OpenGL is unreliable on some Intel Mobile GMA Devices", + "vendor_id": "0x8086", + "device_id": [ "0x2972", "0x2973", + "0x2992", "0x2993", + "0x29A2", "0x29A3", + "0x2982", "0x2983", + "0x2A02", "0x2A03", "0x2A12", "0x2A13", + "0x2E42", "0x2E43", "0x2E92", "0x2E93", + "0x2E12", "0x2E13", + "0x2E32", "0x2E33", + "0x2E22", "0x2E23", + "0x2A42", "0x2A43" + ], + "os": { + "type": "win" + }, + "driver_version": { + "op": "<=", + "value": "8.15.10.2702" + }, + "features": [ + "disable_desktopgl" + ] + } + ] +} diff --git a/src/main.cc b/src/main.cc index 91c48eb1f..d77139a12 100644 --- a/src/main.cc +++ b/src/main.cc @@ -203,6 +203,9 @@ int main(int argc, char *argv[]) // hanging. DWORD dwMode = SetErrorMode(SEM_NOGPFAULTERRORBOX); SetErrorMode(dwMode | SEM_NOGPFAULTERRORBOX); + + // Set our own OpenGL buglist + qputenv("QT_OPENGL_BUGLIST", ":/opengl/resources/opengl/buglist.json"); } #endif #endif // QT_DEBUG -- 2.22.0