ANGLE: fixed usage of shared handles for WinRT/WinPhone applications
Both checks are not relevant in Qt's context and were skipped before but they sneaked back in with the latest ANGLE update. Change-Id: Ic44de5468a3254afd76ef4804d97d245676daeb1 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
This commit is contained in:
parent
20211c4213
commit
c276aa5130
@ -2618,12 +2618,15 @@ bool Renderer11::getShareHandleSupport() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Qt: we don't care about the 9_3 limitation
|
||||||
|
#if 0
|
||||||
// Also disable share handles on Feature Level 9_3, since it doesn't support share handles on RGBA8 textures/swapchains.
|
// Also disable share handles on Feature Level 9_3, since it doesn't support share handles on RGBA8 textures/swapchains.
|
||||||
if (mRenderer11DeviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3)
|
if (mRenderer11DeviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3)
|
||||||
{
|
{
|
||||||
mSupportsShareHandles = false;
|
mSupportsShareHandles = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Find out which type of D3D11 device the Renderer11 is using
|
// Find out which type of D3D11 device the Renderer11 is using
|
||||||
d3d11::ANGLED3D11DeviceType deviceType = getDeviceType();
|
d3d11::ANGLED3D11DeviceType deviceType = getDeviceType();
|
||||||
|
@ -642,11 +642,14 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E
|
|||||||
return Error(EGL_BAD_ATTRIBUTE);
|
return Error(EGL_BAD_ATTRIBUTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On Windows Store, we know the originating texture came from D3D11, so bypass this check
|
||||||
|
#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
|
||||||
const Caps &caps = display->getCaps();
|
const Caps &caps = display->getCaps();
|
||||||
if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height)))
|
if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height)))
|
||||||
{
|
{
|
||||||
return Error(EGL_BAD_MATCH);
|
return Error(EGL_BAD_MATCH);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return Error(EGL_SUCCESS);
|
return Error(EGL_SUCCESS);
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
From 5cacddc702624d64a4917a7a704dbbb92aeba53c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oliver Wolff <oliver.wolff@qt.io>
|
||||||
|
Date: Thu, 19 May 2016 10:55:46 +0200
|
||||||
|
Subject: [PATCH] ANGLE: fixed usage of shared handles for WinRT/WinPhone
|
||||||
|
applications
|
||||||
|
|
||||||
|
Both checks are not relevant in Qt's context and were skipped before but
|
||||||
|
they sneaked back in with the latest ANGLE update.
|
||||||
|
|
||||||
|
Change-Id: Ic44de5468a3254afd76ef4804d97d245676daeb1
|
||||||
|
---
|
||||||
|
src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 3 +++
|
||||||
|
src/3rdparty/angle/src/libANGLE/validationEGL.cpp | 3 +++
|
||||||
|
2 files changed, 6 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 62badcc..0173311 100644
|
||||||
|
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
|
||||||
|
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
|
||||||
|
@@ -2618,12 +2618,15 @@ bool Renderer11::getShareHandleSupport() const
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Qt: we don't care about the 9_3 limitation
|
||||||
|
+#if 0
|
||||||
|
// Also disable share handles on Feature Level 9_3, since it doesn't support share handles on RGBA8 textures/swapchains.
|
||||||
|
if (mRenderer11DeviceCaps.featureLevel <= D3D_FEATURE_LEVEL_9_3)
|
||||||
|
{
|
||||||
|
mSupportsShareHandles = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// Find out which type of D3D11 device the Renderer11 is using
|
||||||
|
d3d11::ANGLED3D11DeviceType deviceType = getDeviceType();
|
||||||
|
diff --git a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
|
||||||
|
index 972f6a7..903f51b 100644
|
||||||
|
--- a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
|
||||||
|
+++ b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
|
||||||
|
@@ -642,11 +642,14 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E
|
||||||
|
return Error(EGL_BAD_ATTRIBUTE);
|
||||||
|
}
|
||||||
|
|
||||||
|
+// On Windows Store, we know the originating texture came from D3D11, so bypass this check
|
||||||
|
+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
|
||||||
|
const Caps &caps = display->getCaps();
|
||||||
|
if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height)))
|
||||||
|
{
|
||||||
|
return Error(EGL_BAD_MATCH);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return Error(EGL_SUCCESS);
|
||||||
|
--
|
||||||
|
2.7.0.windows.1
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user