summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Nevala <samuel.nevala@intopalo.com>2015-10-03 02:46:15 +0300
committerJani Heikkinen <jani.heikkinen@theqtcompany.com>2015-10-02 12:51:33 +0000
commit44f323e5007a389c4103bfc6ca577d26078ce92b (patch)
tree15d9d55cb0256e287438c4cdf939d03a402b4c46
parentb8e0f7cfc638a71770f44ada828ff2cf6d2ee201 (diff)
ANGLE: Fix D3D feature level detection.
Commit 7943d4f tried to fix this with a switch/case, but the feature levels need to be in descending order so this failed. So, follow the same style used for feature levels 10/11. Change-Id: Ia1c22981bf8b99eb53df13833aba452482398295 Task-number: QTBUG-38481 Task-number: QTBUG-48571 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
-rw-r--r--src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp26
-rw-r--r--src/angle/patches/0008-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch48
2 files changed, 33 insertions, 41 deletions
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 ea5953fee8..223e2b019b 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
@@ -293,25 +293,23 @@ Renderer11::Renderer11(egl::Display *display)
#if defined(ANGLE_ENABLE_WINDOWS_STORE)
if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9)
#else
- if (requestedMajorVersion == 9)
+ if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
#endif
{
- switch (requestedMinorVersion) {
+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3)
+ {
+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
+ }
#if defined(ANGLE_ENABLE_WINDOWS_STORE)
- case EGL_DONT_CARE:
- case 1:
- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1);
- // fall through
- case 2:
+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 2)
+ {
mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_2);
- // fall through
-#endif
- case 3:
- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
- break;
- default:
- break;
}
+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 1)
+ {
+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1);
+ }
+#endif
}
EGLint requestedDeviceType = attributes.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE,
diff --git a/src/angle/patches/0008-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch b/src/angle/patches/0008-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
index e9677fab68..705219ed24 100644
--- a/src/angle/patches/0008-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
+++ b/src/angle/patches/0008-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
@@ -1,6 +1,6 @@
-From f6d73de2a8a36becb8a2e0cce84475e91f1f63b4 Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@intopalo.com>
-Date: Mon, 28 Sep 2015 22:43:13 +0300
+From 3d696560f987a08d608b29bf3e0f557e96bebc56 Mon Sep 17 00:00:00 2001
+From: Samuel Nevala <samuel.nevala@intopalo.com>
+Date: Sat, 3 Oct 2015 02:30:26 +0300
Subject: [PATCH] ANGLE: Fix Windows Store D3D Trim and Level 9 requirements
Due to additional validation not covered in previous patches, the Windows
@@ -9,39 +9,33 @@ the required D3D behaviors are met.
Change-Id: I0a74f0d2fecaa87d4a9409da3a7a194254609759
---
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 19 +++++++++++++++++--
- .../angle/src/libGLESv2/entry_points_egl_ext.cpp | 2 ++
- 2 files changed, 19 insertions(+), 2 deletions(-)
+ .../angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 16 +++++++++++++++-
+ .../angle/src/libGLESv2/entry_points_egl_ext.cpp | 2 ++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
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 5291a3a..ea5953f 100644
+index 5291a3a..61d9212 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-@@ -293,10 +293,25 @@ Renderer11::Renderer11(egl::Display *display)
- #if defined(ANGLE_ENABLE_WINDOWS_STORE)
- if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9)
- #else
-- if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
-+ if (requestedMajorVersion == 9)
+@@ -296,7 +296,21 @@ Renderer11::Renderer11(egl::Display *display)
+ if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
#endif
{
- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
-+ switch (requestedMinorVersion) {
++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3)
++ {
++ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
++ }
+#if defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ case EGL_DONT_CARE:
-+ case 1:
-+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1);
-+ // fall through
-+ case 2:
++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 2)
++ {
+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_2);
-+ // fall through
-+#endif
-+ case 3:
-+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
-+ break;
-+ default:
-+ break;
+ }
++ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 1)
++ {
++ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1);
++ }
++#endif
}
EGLint requestedDeviceType = attributes.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE,
@@ -59,5 +53,5 @@ index 62f3ca1..02b6631 100644
if (!display->getExtensions().surfaceD3DTexture2DShareHandle)
{
--
-2.5.1.windows.1
+1.9.5.msysgit.1