Provide custom gpu_driver_bug_list.json on Windows.

This commit is contained in:
John Preston 2021-07-23 10:09:00 +03:00
parent 2439235e42
commit 12429c198d
3 changed files with 263 additions and 0 deletions

View file

@ -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"
]
}
]
}

View file

@ -2,4 +2,7 @@
<qresource prefix="/qt/etc"> <qresource prefix="/qt/etc">
<file alias="qt.conf">qt_win.conf</file> <file alias="qt.conf">qt_win.conf</file>
</qresource> </qresource>
<qresource prefix="/misc">
<file alias="gpu_driver_bug_list.json">gpu_driver_bug_list.json</file>
</qresource>
</RCC> </RCC>

View file

@ -49,6 +49,16 @@ Capabilities CheckCapabilities(QWidget *widget) {
LOG_ONCE(("OpenGL: Force-disabled.")); LOG_ONCE(("OpenGL: Force-disabled."));
return {}; 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(); auto format = QSurfaceFormat();
if (widget) { if (widget) {
if (!widget->window()->windowHandle()) { if (!widget->window()->windowHandle()) {