summaryrefslogtreecommitdiffstats
path: root/src/angle/patches/0011-ANGLE-Disable-support-for-shared-handles-in-warp-mod.patch
blob: 1c4ee1d513b838c514072e1543c2a13dd3ce5b7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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