ANGLE: Disable support for shared handles in warp mode on Windows < 8
Shared handles are not supported on Windows 7 and below. If the according flag is set CreateTexture2D will fail with E_OUTOFMEMORY. The check already happens with newer ANGLE versions, which we use in 5.7 but has to happen here as well. Otherwise Qt applications running on Windows 7 and below will crash at startup. Change-Id: I8f539f16dce298611fb1ec7b2f6804d4a04d04e0 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
This commit is contained in:
parent
864380639b
commit
d8d4129c1b
@ -2370,6 +2370,19 @@ unsigned int Renderer11::getReservedFragmentUniformBuffers() const
|
|||||||
|
|
||||||
bool Renderer11::getShareHandleSupport() const
|
bool Renderer11::getShareHandleSupport() const
|
||||||
{
|
{
|
||||||
|
if (mDriverType == D3D_DRIVER_TYPE_WARP)
|
||||||
|
{
|
||||||
|
#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
|
||||||
|
// Warp mode does not support shared handles in Windows versions below Windows 8
|
||||||
|
OSVERSIONINFO result = { sizeof(OSVERSIONINFO), 0, 0, 0, 0, {'\0'}};
|
||||||
|
if (GetVersionEx(&result) &&
|
||||||
|
((result.dwMajorVersion == 6 && result.dwMinorVersion < 2) || result.dwMajorVersion < 6))
|
||||||
|
{
|
||||||
|
// WARP on Windows 7 doesn't support shared handles
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif // ANGLE_ENABLE_WINDOWS_STORE
|
||||||
|
}
|
||||||
// We only currently support share handles with BGRA surfaces, because
|
// We only currently support share handles with BGRA surfaces, because
|
||||||
// chrome needs BGRA. Once chrome fixes this, we should always support them.
|
// chrome needs BGRA. Once chrome fixes this, we should always support them.
|
||||||
// PIX doesn't seem to support using share handles, so disable them.
|
// PIX doesn't seem to support using share handles, so disable them.
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
From db13a9cf7e41207660f080827983655864df802d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oliver Wolff <oliver.wolff@qt.io>
|
||||||
|
Date: Wed, 11 May 2016 13:51:54 +0200
|
||||||
|
Subject: [PATCH] ANGLE: Disable support for shared handles in warp mode on
|
||||||
|
Windows < 8
|
||||||
|
|
||||||
|
Shared handles are not supported on Windows 7 and below. If the
|
||||||
|
according flag is set CreateTexture2D will fail with E_OUTOFMEMORY. The
|
||||||
|
check already happens with newer ANGLE versions, which we use in 5.7
|
||||||
|
but has to happen here as well. Otherwise Qt applications running on
|
||||||
|
Windows 7 and below will crash at startup.
|
||||||
|
|
||||||
|
Change-Id: I8f539f16dce298611fb1ec7b2f6804d4a04d04e0
|
||||||
|
---
|
||||||
|
.../angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
|
||||||
|
index 223e2b0..dd554f4 100644
|
||||||
|
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
|
||||||
|
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
|
||||||
|
@@ -2370,6 +2370,19 @@ unsigned int Renderer11::getReservedFragmentUniformBuffers() const
|
||||||
|
|
||||||
|
bool Renderer11::getShareHandleSupport() const
|
||||||
|
{
|
||||||
|
+ if (mDriverType == D3D_DRIVER_TYPE_WARP)
|
||||||
|
+ {
|
||||||
|
+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
|
||||||
|
+ // Warp mode does not support shared handles in Windows versions below Windows 8
|
||||||
|
+ OSVERSIONINFO result = { sizeof(OSVERSIONINFO), 0, 0, 0, 0, {'\0'}};
|
||||||
|
+ if (GetVersionEx(&result) &&
|
||||||
|
+ ((result.dwMajorVersion == 6 && result.dwMinorVersion < 2) || result.dwMajorVersion < 6))
|
||||||
|
+ {
|
||||||
|
+ // WARP on Windows 7 doesn't support shared handles
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+#endif // ANGLE_ENABLE_WINDOWS_STORE
|
||||||
|
+ }
|
||||||
|
// We only currently support share handles with BGRA surfaces, because
|
||||||
|
// chrome needs BGRA. Once chrome fixes this, we should always support them.
|
||||||
|
// PIX doesn't seem to support using share handles, so disable them.
|
||||||
|
--
|
||||||
|
2.7.0.windows.1
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user