Windows: Disable shader disk cache for Intel HD Graphics 620
Set Qt::AA_DisableShaderDiskCache when the feature "disable_program_cache" (modeled after the Chromium driver bug list) is present and set it for the Intel HD Graphics 620 card. Task-number: QTBUG-64697 Change-Id: Ibba588d2ab296b5c959ab8ee9712b47ec7cc906e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
parent
fd6370d89f
commit
dff9bb2f9b
@ -141,6 +141,18 @@
|
||||
"features": [
|
||||
"disable_desktopgl", "disable_d3d11", "disable_d3d9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"description": "Intel HD Graphics 620 crash in conjunction with shader caches (QTBUG-64697)",
|
||||
"vendor_id": "0x8086",
|
||||
"device_id": [ "0x5916" ],
|
||||
"os": {
|
||||
"type": "win"
|
||||
},
|
||||
"features": [
|
||||
"disable_program_cache"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -418,6 +418,10 @@ QWindowsStaticOpenGLContext *QWindowsStaticOpenGLContext::doCreate()
|
||||
}
|
||||
|
||||
const QWindowsOpenGLTester::Renderers supportedRenderers = QWindowsOpenGLTester::supportedRenderers();
|
||||
if (supportedRenderers.testFlag(QWindowsOpenGLTester::DisableProgramCacheFlag)
|
||||
&& !QCoreApplication::testAttribute(Qt::AA_DisableShaderDiskCache)) {
|
||||
QCoreApplication::setAttribute(Qt::AA_DisableShaderDiskCache);
|
||||
}
|
||||
if (supportedRenderers & QWindowsOpenGLTester::DesktopGl) {
|
||||
if (QWindowsStaticOpenGLContext *glCtx = QOpenGLStaticContext::create()) {
|
||||
if ((supportedRenderers & QWindowsOpenGLTester::DisableRotationFlag)
|
||||
|
@ -301,6 +301,10 @@ QWindowsOpenGLTester::Renderers QWindowsOpenGLTester::detectSupportedRenderers(c
|
||||
qCDebug(lcQpaGl) << "Disabling rotation: " << gpu;
|
||||
result |= DisableRotationFlag;
|
||||
}
|
||||
if (features.contains(QStringLiteral("disable_program_cache"))) {
|
||||
qCDebug(lcQpaGl) << "Disabling program cache: " << gpu;
|
||||
result |= DisableProgramCacheFlag;
|
||||
}
|
||||
srCache->insert(qgpu, result);
|
||||
return result;
|
||||
#endif // !QT_NO_OPENGL
|
||||
|
@ -83,7 +83,8 @@ public:
|
||||
GlesMask = Gles | AngleBackendMask,
|
||||
SoftwareRasterizer = 0x0020,
|
||||
RendererMask = 0x00FF,
|
||||
DisableRotationFlag = 0x0100
|
||||
DisableRotationFlag = 0x0100,
|
||||
DisableProgramCacheFlag = 0x0200
|
||||
};
|
||||
Q_DECLARE_FLAGS(Renderers, Renderer)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user