From d8d4129c1b4be6a62ec17d0418ff7a37be451d4c Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Wed, 11 May 2016 13:51:54 +0200 Subject: 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 --- .../angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/3rdparty') 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 223e2b019b..dd554f4f38 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. -- cgit v1.2.3