summaryrefslogtreecommitdiffstats
path: root/src/angle
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2018-06-26 16:56:45 +0200
committerAndre de la Rocha <andre.rocha@qt.io>2018-10-13 21:36:35 +0000
commit0a7aebadfbb3534284546aa3ca8612314c08f136 (patch)
treee94ee33ae3bb9b96fc3047c6455d47ac4920bfbf /src/angle
parent656e89f875ad2008ca16cc673b687a22daa294c9 (diff)
Update ANGLE to chromium/3280
Change-Id: I0802c0d7486f772d361f87a544d6c5af937f4ca1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/angle')
-rw-r--r--src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch464
-rw-r--r--src/angle/patches/0001-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch135
-rw-r--r--src/angle/patches/0001-Fix-build-for-MinGW.patch26
-rw-r--r--src/angle/patches/0002-ANGLE-Add-support-for-querying-platform-device.patch (renamed from src/angle/patches/0003-ANGLE-Add-support-for-querying-platform-device.patch)48
-rw-r--r--src/angle/patches/0002-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch62
-rw-r--r--src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch43
-rw-r--r--src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch892
-rw-r--r--src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch (renamed from src/angle/patches/0006-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-requirements.patch)23
-rw-r--r--src/angle/patches/0004-ANGLE-Allow-Windows-Phone-to-communicate-swap-region.patch146
-rw-r--r--src/angle/patches/0004-ANGLE-fix-usage-of-shared-handles-for-WinRT-applicat.patch37
-rw-r--r--src/angle/patches/0005-ANGLE-Fix-compilation-without-d3d11.patch59
-rw-r--r--src/angle/patches/0005-ANGLE-Fix-initialization-of-zero-sized-window.patch (renamed from src/angle/patches/0012-ANGLE-Fix-initialization-of-zero-sized-window.patch)18
-rw-r--r--src/angle/patches/0006-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch (renamed from src/angle/patches/0014-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch)84
-rw-r--r--src/angle/patches/0007-ANGLE-D3D11-Suppress-keyboard-handling-of-DXGI.patch45
-rw-r--r--src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch (renamed from src/angle/patches/0016-ANGLE-Fix-resizing-of-windows.patch)39
-rw-r--r--src/angle/patches/0008-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch401
-rw-r--r--src/angle/patches/0008-ANGLE-winrt-Do-full-screen-update-if-the-the-window-.patch40
-rw-r--r--src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch31
-rw-r--r--src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch67
-rw-r--r--src/angle/patches/0010-ANGLE-Disable-multisampling-to-avoid-crash-in-Qt-app.patch41
-rw-r--r--src/angle/patches/0010-ANGLE-fixed-usage-of-shared-handles-for-WinRT-WinPho.patch57
-rw-r--r--src/angle/patches/0011-ANGLE-Disable-support-for-shared-handles-in-warp-mod.patch44
-rw-r--r--src/angle/patches/0013-ANGLE-Fix-crash-with-ltcg-on-Visual-Studio-2015-Upda.patch110
-rw-r--r--src/angle/patches/0015-ANGLE-Use-ANGLE_D3D11_QDTD_AVAILABLE-to-check-struct-.patch32
-rw-r--r--src/angle/patches/0017-Remove-usage-of-auto_ptr-in-MacroExpander.patch31
-rw-r--r--src/angle/src/common/common.pri3
-rw-r--r--src/angle/src/common/gles_common.pri314
-rw-r--r--src/angle/src/compiler/preprocessor/preprocessor.pro7
-rw-r--r--src/angle/src/compiler/translator.pro87
-rw-r--r--src/angle/src/config.pri2
30 files changed, 797 insertions, 2591 deletions
diff --git a/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch b/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch
deleted file mode 100644
index e8f11b5172..0000000000
--- a/src/angle/patches/0001-ANGLE-Improve-Windows-Phone-Support.patch
+++ /dev/null
@@ -1,464 +0,0 @@
-From bbc3a5f89821030dd2772cd8015070a3da9ad57e Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Mon, 29 Feb 2016 11:09:24 +0100
-Subject: [PATCH 1/7] ANGLE: Improve Windows Phone Support
-
-This contains compile fixes for Windows Phone as well as improved
-orientation handling.
-
-Change-Id: I5011e9980957ff0797db179b36c3be9cac6df497
----
- src/3rdparty/angle/src/common/platform.h | 2 ++
- .../renderer/d3d/d3d11/DebugAnnotator11.cpp | 2 +-
- .../src/libANGLE/renderer/d3d/d3d11/NativeWindow.h | 4 +++
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 8 ++++-
- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 40 ++++++++++++++++++++++
- .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 33 ++++++++++++++++--
- .../d3d/d3d11/winrt/CoreWindowNativeWindow.h | 35 ++++++++++++++++++-
- .../d3d/d3d11/winrt/InspectableNativeWindow.cpp | 12 +++++++
- .../d3d/d3d11/winrt/InspectableNativeWindow.h | 14 +++++++-
- src/3rdparty/angle/src/libANGLE/validationEGL.cpp | 4 ++-
- .../src/third_party/systeminfo/SystemInfo.cpp | 4 +--
- 11 files changed, 148 insertions(+), 10 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h
-index 56db297..4e3851c 100644
---- a/src/3rdparty/angle/src/common/platform.h
-+++ b/src/3rdparty/angle/src/common/platform.h
-@@ -68,7 +68,9 @@
- # if defined(ANGLE_ENABLE_WINDOWS_STORE)
- # include <dxgi1_3.h>
- # if defined(_DEBUG)
-+# if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
- # include <DXProgrammableCapture.h>
-+# endif
- # include <dxgidebug.h>
- # endif
- # endif
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-index f9d28e8..2e42859 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-@@ -77,7 +77,7 @@ bool DebugAnnotator11::getStatus()
- }
-
- return true; // Default if initializeDevice() failed
--#elif defined(_DEBUG)
-+#elif defined(_DEBUG) && (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP)
- static bool underCapture = true;
-
- // ID3DUserDefinedAnnotation::GetStatus doesn't work with the Graphics Diagnostics tools in
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-index f28ce4f..1c94538 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-@@ -54,6 +54,7 @@ namespace rx
- class NativeWindow
- {
- public:
-+ enum RotationFlags { RotateNone = 0, RotateLeft = 1, RotateRight = 2 };
- explicit NativeWindow(EGLNativeWindowType window,
- const egl::Config *config,
- bool directComposition);
-@@ -62,6 +63,9 @@ class NativeWindow
- bool initialize();
- bool getClientRect(LPRECT rect);
- bool isIconic();
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ RotationFlags rotationFlags() const;
-+#endif
- static bool isValidNativeWindow(EGLNativeWindowType window);
-
- HRESULT createSwapChain(ID3D11Device* device, DXGIFactory* factory,
-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 f7757df..03159bb 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-@@ -10,7 +10,9 @@
-
- #include <EGL/eglext.h>
- #include <sstream>
-+#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
- #include <VersionHelpers.h>
-+#endif
-
- #include "common/tls.h"
- #include "common/utilities.h"
-@@ -445,7 +447,11 @@ Renderer11::Renderer11(egl::Display *display)
- }
- }
-
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 9)
-+#else
- if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
-+#endif
- {
- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
- }
-@@ -946,12 +952,12 @@ egl::ConfigSet Renderer11::generateConfigs() const
- config.bindToTextureRGBA = (colorBufferFormatInfo.format == GL_RGBA ||
- colorBufferFormatInfo.format == GL_BGRA_EXT);
- config.colorBufferType = EGL_RGB_BUFFER;
-- config.configCaveat = EGL_NONE;
- config.configID = static_cast<EGLint>(configs.size() + 1);
- // Can only support a conformant ES2 with feature level greater than 10.0.
- config.conformant = (mRenderer11DeviceCaps.featureLevel >= D3D_FEATURE_LEVEL_10_0)
- ? (EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES3_BIT_KHR)
- : 0;
-+ config.configCaveat = config.conformant == EGL_NONE ? EGL_NON_CONFORMANT_CONFIG : EGL_NONE;
-
- // PresentPathFast may not be conformant
- if (mPresentPathFastEnabled)
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index a56d3fa..9432a7f 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -222,8 +222,14 @@ EGLint SwapChain11::resetOffscreenColorBuffer(int backbufferWidth, int backbuffe
- const bool useSharedResource = !mNativeWindow.getNativeWindow() && mRenderer->getShareHandleSupport();
-
- D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0};
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ const int textureLength = std::max(backbufferWidth, backbufferHeight);
-+ offscreenTextureDesc.Width = textureLength;
-+ offscreenTextureDesc.Height = textureLength;
-+#else
- offscreenTextureDesc.Width = backbufferWidth;
- offscreenTextureDesc.Height = backbufferHeight;
-+#endif
- offscreenTextureDesc.Format = backbufferFormatInfo.texFormat;
- offscreenTextureDesc.MipLevels = 1;
- offscreenTextureDesc.ArraySize = 1;
-@@ -336,8 +342,14 @@ EGLint SwapChain11::resetOffscreenDepthBuffer(int backbufferWidth, int backbuffe
- d3d11::GetTextureFormatInfo(mDepthBufferFormat, mRenderer->getRenderer11DeviceCaps());
-
- D3D11_TEXTURE2D_DESC depthStencilTextureDesc;
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ const int textureLength = std::max(backbufferWidth, backbufferHeight);
-+ depthStencilTextureDesc.Width = textureLength;
-+ depthStencilTextureDesc.Height = textureLength;
-+#else
- depthStencilTextureDesc.Width = backbufferWidth;
- depthStencilTextureDesc.Height = backbufferHeight;
-+#endif
- depthStencilTextureDesc.Format = depthBufferFormatInfo.texFormat;
- depthStencilTextureDesc.MipLevels = 1;
- depthStencilTextureDesc.ArraySize = 1;
-@@ -422,6 +434,7 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight)
- return EGL_SUCCESS;
- }
-
-+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP)
- // Can only call resize if we have already created our swap buffer and resources
- ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView && mBackBufferSRView);
-
-@@ -479,6 +492,12 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight)
- mFirstSwap = true;
-
- return resetOffscreenBuffers(backbufferWidth, backbufferHeight);
-+#else
-+ // Do nothing on Windows Phone apart from updating the internal buffer/width height
-+ mWidth = backbufferWidth;
-+ mHeight = backbufferHeight;
-+ return EGL_SUCCESS;
-+#endif
- }
-
- DXGI_FORMAT SwapChain11::getSwapChainNativeFormat() const
-@@ -704,6 +723,21 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- float x2 = ((x + width) / float(mWidth)) * 2.0f - 1.0f;
- float y2 = ((y + height) / float(mHeight)) * 2.0f - 1.0f;
-
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ const float dim = std::max(mWidth, mHeight);
-+ float u1 = x / dim;
-+ float v1 = y / dim;
-+ float u2 = (x + width) / dim;
-+ float v2 = (y + height) / dim;
-+
-+ const NativeWindow::RotationFlags flags = mNativeWindow.rotationFlags();
-+ const bool rotateL = flags == NativeWindow::RotateLeft;
-+ const bool rotateR = flags == NativeWindow::RotateRight;
-+ d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, rotateL ? u2 : u1, rotateR ? v2 : v1);
-+ d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, rotateR ? u2 : u1, rotateL ? v1 : v2);
-+ d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, rotateR ? u1 : u2, rotateL ? v2 : v1);
-+ d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, rotateL ? u1 : u2, rotateR ? v1 : v2);
-+#else
- float u1 = x / float(mWidth);
- float v1 = y / float(mHeight);
- float u2 = (x + width) / float(mWidth);
-@@ -723,6 +757,7 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, u1, v2);
- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, u2, v1);
- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, u2, v2);
-+#endif
-
- deviceContext->Unmap(mQuadVB, 0);
-
-@@ -752,8 +787,13 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- D3D11_VIEWPORT viewport;
- viewport.TopLeftX = 0;
- viewport.TopLeftY = 0;
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ viewport.Width = (rotateL || rotateR) ? mHeight : mWidth;
-+ viewport.Height = (rotateL || rotateR) ? mWidth : mHeight;
-+#else
- viewport.Width = static_cast<FLOAT>(mWidth);
- viewport.Height = static_cast<FLOAT>(mHeight);
-+#endif
- viewport.MinDepth = 0.0f;
- viewport.MaxDepth = 1.0f;
- deviceContext->RSSetViewports(1, &viewport);
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-index 71f0e42..6a4795a 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-@@ -8,8 +8,6 @@
-
- #include "libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h"
-
--#include <windows.graphics.display.h>
--
- using namespace ABI::Windows::Foundation::Collections;
-
- namespace rx
-@@ -21,6 +19,7 @@ CoreWindowNativeWindow::~CoreWindowNativeWindow()
-
- bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet *propertySet)
- {
-+ mOrientationChangedEventToken.value = 0;
- ComPtr<IPropertySet> props = propertySet;
- ComPtr<IInspectable> win = window;
- SIZE swapChainSize = {};
-@@ -100,6 +99,16 @@ bool CoreWindowNativeWindow::initialize(EGLNativeWindowType window, IPropertySet
-
- if (SUCCEEDED(result))
- {
-+ ComPtr<ABI::Windows::Graphics::Display::IDisplayInformationStatics> displayInformation;
-+ result = GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayInformation).Get(), &displayInformation);
-+ if (SUCCEEDED(result))
-+ {
-+ result = displayInformation->GetForCurrentView(&mDisplayInformation);
-+ }
-+ }
-+
-+ if (SUCCEEDED(result))
-+ {
- mNewClientRect = mClientRect;
- mClientRectChanged = false;
- return registerForSizeChangeEvents();
-@@ -117,6 +126,15 @@ bool CoreWindowNativeWindow::registerForSizeChangeEvents()
- result = mCoreWindow->add_SizeChanged(sizeChangedHandler.Get(), &mSizeChangedEventToken);
- }
-
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ ComPtr<IDisplayOrientationEventHandler> orientationChangedHandler;
-+ result = sizeChangedHandler.As(&orientationChangedHandler);
-+ if (SUCCEEDED(result))
-+ {
-+ result = mDisplayInformation->add_OrientationChanged(orientationChangedHandler.Get(), &mOrientationChangedEventToken);
-+ }
-+#endif
-+
- if (SUCCEEDED(result))
- {
- return true;
-@@ -131,7 +149,16 @@ void CoreWindowNativeWindow::unregisterForSizeChangeEvents()
- {
- (void)mCoreWindow->remove_SizeChanged(mSizeChangedEventToken);
- }
-+
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ if (mDisplayInformation)
-+ {
-+ (void)mDisplayInformation->remove_OrientationChanged(mOrientationChangedEventToken);
-+ }
-+#endif
-+
- mSizeChangedEventToken.value = 0;
-+ mOrientationChangedEventToken.value = 0;
- }
-
- HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
-@@ -168,7 +195,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
- if (SUCCEEDED(result))
- {
-
--#if (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+#if 0 //(WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) // Qt: allow Windows Phone to resize, but don't modify the backing texture in the swap chain.
- // Test if swapchain supports resize. On Windows Phone devices, this will return DXGI_ERROR_UNSUPPORTED. On
- // other devices DXGI_ERROR_INVALID_CALL should be returned because the combination of flags passed
- // (DXGI_SWAP_CHAIN_FLAG_NONPREROTATED | DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE) are invalid flag combinations.
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-index 7747005..4de235a 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-@@ -12,8 +12,10 @@
- #include "libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h"
-
- #include <memory>
-+#include <windows.graphics.display.h>
-
- typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CUI__CCore__CCoreWindow_Windows__CUI__CCore__CWindowSizeChangedEventArgs_t IWindowSizeChangedEventHandler;
-+typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CGraphics__CDisplay__CDisplayInformation_IInspectable_t IDisplayOrientationEventHandler;
-
- namespace rx
- {
-@@ -42,11 +44,13 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enabl
- private:
- ComPtr<ABI::Windows::UI::Core::ICoreWindow> mCoreWindow;
- ComPtr<IMap<HSTRING, IInspectable*>> mPropertyMap;
-+ ComPtr<ABI::Windows::Graphics::Display::IDisplayInformation> mDisplayInformation;
-+ EventRegistrationToken mOrientationChangedEventToken;
- };
-
- [uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)]
- class CoreWindowSizeChangedHandler :
-- public Microsoft::WRL::RuntimeClass<Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, IWindowSizeChangedEventHandler>
-+ public Microsoft::WRL::RuntimeClass<Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>, IWindowSizeChangedEventHandler, IDisplayOrientationEventHandler>
- {
- public:
- CoreWindowSizeChangedHandler() { }
-@@ -78,6 +82,35 @@ class CoreWindowSizeChangedHandler :
- return S_OK;
- }
-
-+ IFACEMETHOD(Invoke)(ABI::Windows::Graphics::Display::IDisplayInformation *displayInformation, IInspectable *)
-+ {
-+ #if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+ NativeWindow::RotationFlags flags = NativeWindow::RotateNone;
-+ ABI::Windows::Graphics::Display::DisplayOrientations orientation;
-+ if (SUCCEEDED(displayInformation->get_CurrentOrientation(&orientation)))
-+ {
-+ switch (orientation)
-+ {
-+ case ABI::Windows::Graphics::Display::DisplayOrientations_Landscape:
-+ flags = NativeWindow::RotateLeft;
-+ break;
-+ case ABI::Windows::Graphics::Display::DisplayOrientations_LandscapeFlipped:
-+ flags = NativeWindow::RotateRight;
-+ break;
-+ default:
-+ break;
-+ }
-+ }
-+ std::shared_ptr<InspectableNativeWindow> host = mHost.lock();
-+ if (host)
-+ {
-+ host->setRotationFlags(flags);
-+ }
-+ #endif
-+ return S_OK;
-+ }
-+
-+
- private:
- std::weak_ptr<InspectableNativeWindow> mHost;
- };
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-index 47a6dae..c9b203e 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-@@ -80,6 +80,18 @@ bool NativeWindow::getClientRect(RECT *rect)
- return false;
- }
-
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-+NativeWindow::RotationFlags NativeWindow::rotationFlags() const
-+{
-+ if (mImpl)
-+ {
-+ return mImpl->rotationFlags();
-+ }
-+
-+ return NativeWindow::RotateNone;
-+}
-+#endif
-+
- bool NativeWindow::isIconic()
- {
- return false;
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-index 4b9cf80..70e5fe7 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-@@ -36,7 +36,8 @@ class InspectableNativeWindow
- mSwapChainScale(1.0f),
- mClientRectChanged(false),
- mClientRect({0,0,0,0}),
-- mNewClientRect({0,0,0,0})
-+ mNewClientRect({0,0,0,0}),
-+ mRotationFlags(NativeWindow::RotateNone)
- {
- mSizeChangedEventToken.value = 0;
- }
-@@ -94,6 +95,16 @@ class InspectableNativeWindow
- }
- }
-
-+ NativeWindow::RotationFlags rotationFlags() const
-+ {
-+ return mRotationFlags;
-+ }
-+
-+ void setRotationFlags(NativeWindow::RotationFlags flags)
-+ {
-+ mRotationFlags = flags;
-+ }
-+
- protected:
- virtual HRESULT scaleSwapChain(const SIZE &windowSize, const RECT &clientRect) = 0;
-
-@@ -104,6 +115,7 @@ class InspectableNativeWindow
- RECT mClientRect;
- RECT mNewClientRect;
- bool mClientRectChanged;
-+ NativeWindow::RotationFlags mRotationFlags;
-
- EventRegistrationToken mSizeChangedEventToken;
- };
-diff --git a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
-index bff3c94..972f6a7 100644
---- a/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/validationEGL.cpp
-@@ -269,7 +269,7 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context
- return Error(EGL_BAD_CONFIG);
- }
-
-- if (clientMajorVersion == 3 && !(configuration->conformant & EGL_OPENGL_ES3_BIT_KHR))
-+ if (clientMajorVersion == 3 && !(configuration->conformant & EGL_OPENGL_ES3_BIT_KHR) && !(configuration->configCaveat & EGL_NON_CONFORMANT_CONFIG))
- {
- return Error(EGL_BAD_CONFIG);
- }
-@@ -496,6 +496,7 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri
- return Error(EGL_BAD_MATCH);
- }
-
-+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) // On Windows Store, we know the originating texture came from D3D11, so bypass this check
- const Caps &caps = display->getCaps();
-
- EGLenum textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE);
-@@ -519,6 +520,7 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri
- {
- return Error(EGL_BAD_MATCH);
- }
-+#endif
-
- return Error(EGL_SUCCESS);
- }
-diff --git a/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp b/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp
-index 97dfcaa..e082895 100644
---- a/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp
-+++ b/src/3rdparty/angle/src/third_party/systeminfo/SystemInfo.cpp
-@@ -26,7 +26,7 @@
- #include <windows.h>
- #include "common/platform.h"
-
--#if _WIN32_WINNT_WINBLUE
-+#if _WIN32_WINNT_WINBLUE && WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
- #include <versionhelpers.h>
- #endif
-
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0001-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch b/src/angle/patches/0001-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch
new file mode 100644
index 0000000000..618ad08b4b
--- /dev/null
+++ b/src/angle/patches/0001-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch
@@ -0,0 +1,135 @@
+From b1f0b50c19ec17df554faa1335d2b989e262b831 Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 09:21:04 +0200
+Subject: [PATCH 1/8] ANGLE: Use pixel sizes in the XAML swap chain
+
+This is necessary for Qt applications, as they render to GL in physical
+pixels. This is consistent with the CoreWindow swap chain behavior.
+
+In order to achieve proper scaling, the scale factor has to be initialized
+properly in InspectableNativeWindow.
+
+This change only affects Windows Runtime targets.
+
+Change-Id: I92a365f33752ed49c960e390bbf89cc33ccc8004
+---
+ .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 23 -------------------
+ .../d3d/d3d11/winrt/CoreWindowNativeWindow.h | 2 --
+ .../d3d/d3d11/winrt/InspectableNativeWindow.cpp | 26 +++++++++++++++++++---
+ .../d3d/d3d11/winrt/InspectableNativeWindow.h | 7 +++++-
+ 4 files changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
+index dd37ace87e..1ef90e7b09 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
+@@ -205,27 +205,4 @@ HRESULT GetCoreWindowSizeInPixels(const ComPtr<ABI::Windows::UI::Core::ICoreWind
+
+ return result;
+ }
+-
+-static float GetLogicalDpi()
+-{
+- ComPtr<ABI::Windows::Graphics::Display::IDisplayPropertiesStatics> displayProperties;
+-
+- if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf())))
+- {
+- float dpi = 96.0f;
+- if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi)))
+- {
+- return dpi;
+- }
+- }
+-
+- // Return 96 dpi as a default if display properties cannot be obtained.
+- return 96.0f;
+-}
+-
+-float ConvertDipsToPixels(float dips)
+-{
+- static const float dipsPerInch = 96.0f;
+- return dips * GetLogicalDpi() / dipsPerInch;
+-}
+ }
+diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
+index d43bf0ba5f..21855c2c3b 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
+@@ -19,8 +19,6 @@ typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CUI__CCore__C
+
+ namespace rx
+ {
+-float ConvertDipsToPixels(float dips);
+-
+ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enable_shared_from_this<CoreWindowNativeWindow>
+ {
+ public:
+diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
+index cc81521320..1bd796e58f 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
+@@ -270,8 +270,28 @@ HRESULT GetOptionalSinglePropertyValue(const ComPtr<ABI::Windows::Foundation::Co
+
+ RECT InspectableNativeWindow::clientRect(const Size &size)
+ {
+- // We don't have to check if a swapchain scale was specified here; the default value is 1.0f
+- // which will have no effect.
+- return {0, 0, lround(size.Width * mSwapChainScale), lround(size.Height * mSwapChainScale)};
++ return {0, 0, static_cast<long>(ConvertDipsToPixels(size.Width)),
++ static_cast<long>(ConvertDipsToPixels(size.Height))};
++}
++
++float GetLogicalDpi()
++{
++ ComPtr<ABI::Windows::Graphics::Display::IDisplayPropertiesStatics> displayProperties;
++ float dpi = 96.0f;
++
++ if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf())))
++ {
++ if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi)))
++ {
++ return dpi;
++ }
++ }
++ return dpi;
++}
++
++float ConvertDipsToPixels(float dips)
++{
++ static const float dipsPerInch = 96.0f;
++ return lround((dips * GetLogicalDpi() / dipsPerInch));
+ }
+ }
+diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
+index 3e67269f36..d81c3e5fb9 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
+@@ -30,6 +30,9 @@ using namespace ABI::Windows::Foundation::Collections;
+
+ namespace rx
+ {
++float ConvertDipsToPixels(float dips);
++float GetLogicalDpi();
++
+ class InspectableNativeWindow
+ {
+ public:
+@@ -37,12 +40,14 @@ class InspectableNativeWindow
+ mSupportsSwapChainResize(true),
+ mSwapChainSizeSpecified(false),
+ mSwapChainScaleSpecified(false),
+- mSwapChainScale(1.0f),
+ mClientRectChanged(false),
+ mClientRect({0,0,0,0}),
+ mNewClientRect({0,0,0,0})
+ {
+ mSizeChangedEventToken.value = 0;
++ mSwapChainScale = 96.0f / GetLogicalDpi();
++ if (mSwapChainScale != 1.0f)
++ mSwapChainScaleSpecified = true;
+ }
+ virtual ~InspectableNativeWindow(){}
+
+--
+2.15.0.windows.1
+
diff --git a/src/angle/patches/0001-Fix-build-for-MinGW.patch b/src/angle/patches/0001-Fix-build-for-MinGW.patch
new file mode 100644
index 0000000000..186acd39dc
--- /dev/null
+++ b/src/angle/patches/0001-Fix-build-for-MinGW.patch
@@ -0,0 +1,26 @@
+From 75f877269a86aa111afbf816be14ef6c36ea6478 Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Mon, 2 Jul 2018 12:56:39 +0200
+Subject: [PATCH] Fix build for MinGW
+
+SSE is not properly supported for Mingw yet.
+---
+ src/common/platform.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/srccommon/platform.h
+index 0065fd2..47cd57b 100644
+--- a/src/3rdparty/angle/src/common/platform.h
++++ b/src/3rdparty/angle/src/common/platform.h
+@@ -86,7 +86,7 @@
+ #if defined(_MSC_VER) && !defined(_M_ARM)
+ #include <intrin.h>
+ #define ANGLE_USE_SSE
+-#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
++#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) && !defined(__MINGW32__)
+ #include <x86intrin.h>
+ #define ANGLE_USE_SSE
+ #endif
+--
+2.10.2.windows.1
+
diff --git a/src/angle/patches/0003-ANGLE-Add-support-for-querying-platform-device.patch b/src/angle/patches/0002-ANGLE-Add-support-for-querying-platform-device.patch
index ed0f7247cb..d548ce465f 100644
--- a/src/angle/patches/0003-ANGLE-Add-support-for-querying-platform-device.patch
+++ b/src/angle/patches/0002-ANGLE-Add-support-for-querying-platform-device.patch
@@ -1,7 +1,7 @@
-From 037550af14ce0ecebad96d637d7185b60d760b5d Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 1 Mar 2016 13:31:08 +0100
-Subject: [PATCH 3/7] ANGLE: Add support for querying platform device
+From 2f2aabec376cb749a7d0db9e7f754fbfd28b8a72 Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 12:58:13 +0200
+Subject: [PATCH 2/8] ANGLE: Add support for querying platform device
The EGL_EXT_device_base extension allows for querying the platform
device of the graphics hardware via eglQueryDisplayAttribEXT().
@@ -23,10 +23,10 @@ Change-Id: Ib3dfd3edc47dbcc02b07f71980ba785508f2ee57
4 files changed, 12 insertions(+)
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-index 93f6990..0347828 100644
+index 8e78b71a36..ceb022d14c 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-@@ -334,6 +334,10 @@ egl::Error SurfaceD3D::querySurfacePointerANGLE(EGLint attribute, void **value)
+@@ -351,6 +351,10 @@ egl::Error SurfaceD3D::querySurfacePointerANGLE(EGLint attribute, void **value)
{
*value = mSwapChain->getKeyedMutex();
}
@@ -36,24 +36,24 @@ index 93f6990..0347828 100644
+ }
else UNREACHABLE();
- return egl::Error(EGL_SUCCESS);
+ return egl::NoError();
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
-index 1ef6611..171cab5 100644
+index 81c3d13da4..017737b878 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
-@@ -41,6 +41,7 @@ class SwapChainD3D : angle::NonCopyable
- virtual EGLint reset(EGLint backbufferWidth, EGLint backbufferHeight, EGLint swapInterval) = 0;
- virtual EGLint swapRect(EGLint x, EGLint y, EGLint width, EGLint height) = 0;
+@@ -58,6 +58,7 @@ class SwapChainD3D : angle::NonCopyable
+ EGLint width,
+ EGLint height) = 0;
virtual void recreate() = 0;
-+ virtual void *getDevice() { return NULL; }
++ virtual void *getDevice() { return nullptr; }
virtual RenderTargetD3D *getColorRenderTarget() = 0;
virtual RenderTargetD3D *getDepthStencilRenderTarget() = 0;
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index 9432a7f..5a6f202 100644
+index 19bcaae776..05bb5d9863 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -915,4 +915,9 @@ void SwapChain11::recreate()
+@@ -1007,6 +1007,11 @@ void SwapChain11::recreate()
// possibly should use this method instead of reset
}
@@ -62,20 +62,22 @@ index 9432a7f..5a6f202 100644
+ return mRenderer->getDevice();
+}
+
- }
+ RenderTargetD3D *SwapChain11::getColorRenderTarget()
+ {
+ return &mColorRenderTarget;
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
-index 583e29c..99198c6 100644
+index 5ce2af193d..eca068210b 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
-@@ -48,6 +48,8 @@ class SwapChain11 : public SwapChainD3D
- EGLint getHeight() const { return mHeight; }
- void *getKeyedMutex() override { return mKeyedMutex; }
+@@ -61,6 +61,8 @@ class SwapChain11 final : public SwapChainD3D
+ void *getKeyedMutex() override;
+ EGLint getSamples() const { return mEGLSamples; }
-+ virtual void *getDevice();
++ void *getDevice() override;
+
+ egl::Error getSyncValues(EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc) override;
+
private:
- void release();
- void initPassThroughResources();
--
-2.7.0.windows.1
+2.15.0.windows.1
diff --git a/src/angle/patches/0002-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch b/src/angle/patches/0002-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch
deleted file mode 100644
index 9503ae1090..0000000000
--- a/src/angle/patches/0002-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 7dd1de8a519324e6ec7dbfede1b446980cb5954f Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 1 Mar 2016 13:28:02 +0100
-Subject: [PATCH 2/7] ANGLE: Dynamically load D3D compiler from a list
-
-If the default compiler cannot be found, load it from a list of DLL names,
-including a non-versioned proxy DLL provided by Qt. On Desktop Windows,
-the default compiler can also be specified by an environment variable,
-QT_D3DCOMPILER_DLL.
-
-Change-Id: Ic6d6e37095b838b8a636b029b72467f156b850cb
----
- .../src/libANGLE/renderer/d3d/HLSLCompiler.cpp | 26 ++++++++++++++++++++++
- 1 file changed, 26 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-index e8b1af3..0d298bb 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-@@ -12,6 +12,10 @@
- #include "libANGLE/histogram_macros.h"
- #include "third_party/trace_event/trace_event.h"
-
-+#ifndef QT_D3DCOMPILER_DLL
-+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL
-+#endif
-+
- #if ANGLE_APPEND_ASSEMBLY_TO_SHADER_DEBUG_INFO == ANGLE_ENABLED
- namespace
- {
-@@ -128,6 +132,28 @@ gl::Error HLSLCompiler::initialize()
- }
- #endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
-
-+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL
-+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL");
-+ if (!defaultCompiler)
-+ defaultCompiler = QT_D3DCOMPILER_DLL;
-+
-+ const wchar_t *compilerDlls[] = {
-+ defaultCompiler,
-+ L"d3dcompiler_47.dll",
-+ L"d3dcompiler_46.dll",
-+ L"d3dcompiler_43.dll",
-+ 0
-+ };
-+
-+ // Load the first available known compiler DLL
-+ for (int i = 0; compilerDlls[i]; ++i)
-+ {
-+ mD3DCompilerModule = LoadLibrary(compilerDlls[i]);
-+ if (mD3DCompilerModule)
-+ break;
-+ }
-+
-+
- if (!mD3DCompilerModule)
- {
- // Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch b/src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch
new file mode 100644
index 0000000000..04517a116e
--- /dev/null
+++ b/src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch
@@ -0,0 +1,43 @@
+From 416fb93dae5009bb51da9f6720a95918a2c79e78 Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Fri, 17 Aug 2018 09:54:15 +0200
+Subject: [PATCH] ANGLE: Fix build for ARM
+
+__popcnt is not available when building for ARM. This patch uses the
+approach that is also used in Microsoft's ANGLE fork.
+
+Change-Id: I98bac36a3b36b0aa81f3b483d3d12cce9f6c5c87
+---
+ src/3rdparty/angle/src/common/mathutil.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/3rdparty/angle/src/common/mathutil.h b/src/3rdparty/angle/src/common/mathutil.h
+index ca6efc567f..372e432066 100644
+--- a/src/3rdparty/angle/src/common/mathutil.h
++++ b/src/3rdparty/angle/src/common/mathutil.h
+@@ -884,6 +884,14 @@ inline uint32_t BitfieldReverse(uint32_t value)
+
+ // Count the 1 bits.
+ #if defined(ANGLE_PLATFORM_WINDOWS)
++#if defined(_M_ARM)
++inline int BitCount(uint32_t bits)
++{
++ bits = bits - ((bits >> 1) & 0x55555555);
++ bits = (bits & 0x33333333) + ((bits >> 2) & 0x33333333);
++ return (((bits + (bits >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
++}
++#else // _M_ARM
+ inline int BitCount(uint32_t bits)
+ {
+ return static_cast<int>(__popcnt(bits));
+@@ -893,6 +901,7 @@ inline int BitCount(uint64_t bits)
+ {
+ return static_cast<int>(__popcnt64(bits));
+ }
++#endif // !_M_ARM
+ #endif // defined(ANGLE_IS_64_BIT_CPU)
+ #endif // defined(ANGLE_PLATFORM_WINDOWS)
+
+--
+2.15.0.windows.1
+
diff --git a/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch b/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
deleted file mode 100644
index f42ff2141b..0000000000
--- a/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
+++ /dev/null
@@ -1,892 +0,0 @@
-From c6b9e598384563a641efdff56fdbdb0d7a561ec4 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Thu, 10 Mar 2016 15:12:58 +0100
-Subject: [PATCH] ANGLE: Fix compilation with MinGW
-
-This adds definition guards for Direct3D 11 and DirectX SDK layers, which
-are only available in very recent versions (4.9.2 rev 4) of MinGW builds.
-It additionally adds a few missing includes needed for compilation.
-
-Change-Id: I254c208209c0071fae5efb6727f2b3cfd5542da6
----
- src/3rdparty/angle/src/common/platform.h | 10 ++-
- .../src/libANGLE/renderer/d3d/HLSLCompiler.cpp | 9 +++
- .../src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp | 6 ++
- .../src/libANGLE/renderer/d3d/d3d11/Clear11.cpp | 4 +
- .../renderer/d3d/d3d11/DebugAnnotator11.cpp | 10 +++
- .../libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h | 2 +
- .../libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp | 2 +
- .../src/libANGLE/renderer/d3d/d3d11/Query11.cpp | 14 ++++++++++++++
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 32 +++++++-
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.h | 4 +
- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 10 +++
- .../src/libANGLE/renderer/d3d/d3d11/SwapChain11.h | 2 +
- .../renderer/d3d/d3d11/renderer11_utils.cpp | 92 ++++++++++++++++++++++
- .../renderer/d3d/d3d11/win32/NativeWindow.cpp | 8 ++
- .../src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp | 4 +-
- src/3rdparty/angle/src/libEGL/libEGL_mingw32.def | 27 ++++---
- src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def | 19 +++++
- .../angle/src/libGLESv2/libGLESv2_mingw32.def | 32 +++++++-
- .../angle/src/libGLESv2/libGLESv2d_mingw32.def | 32 +++++++-
- 19 files changed, 296 insertions(+), 21 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h
-index 4e3851c..be4cb94 100644
---- a/src/3rdparty/angle/src/common/platform.h
-+++ b/src/3rdparty/angle/src/common/platform.h
-@@ -59,9 +59,17 @@
- # if defined(ANGLE_ENABLE_D3D11)
- # include <d3d10_1.h>
- # include <d3d11.h>
--# include <d3d11_1.h>
- # include <dxgi.h>
-+# if defined(__MINGW32__) && !defined(__d3d11sdklayers_h__)
-+# define ANGLE_MINGW32_COMPAT
-+# endif
-+# if defined(_MSC_VER) && _MSC_VER >= 1800
-+# define ANGLE_ENABLE_D3D11_1
-+# endif
-+# if defined(ANGLE_ENABLE_D3D11_1)
-+# include <d3d11_1.h>
- # include <dxgi1_2.h>
-+# endif
- # include <d3dcompiler.h>
- # endif
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-index 0d298bb..df0257e 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-@@ -25,6 +25,15 @@ namespace
-
- #define CREATE_COMPILER_FLAG_INFO(flag) { flag, #flag }
-
-+#if defined(ANGLE_MINGW32_COMPAT)
-+#ifndef D3DCOMPILE_RESERVED16
-+#define D3DCOMPILE_RESERVED16 0x10000
-+#endif
-+#ifndef D3DCOMPILE_RESERVED17
-+#define D3DCOMPILE_RESERVED17 0x20000
-+#endif
-+#endif
-+
- struct CompilerFlagInfo
- {
- UINT mFlag;
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
-index 66e2d67..0d5dc08 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp
-@@ -29,6 +29,12 @@ GLuint ReadIndexValueFromIndices(const uint8_t *data, size_t index)
- typedef GLuint (*ReadIndexValueFunction)(const uint8_t *data, size_t index);
- }
-
-+#if defined(ANGLE_MINGW32_COMPAT)
-+typedef enum D3D11_MAP_FLAG {
-+ D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
-+} D3D11_MAP_FLAG;
-+#endif
-+
- namespace rx
- {
- PackPixelsParams::PackPixelsParams()
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp
-index 03b28c2..cd95c65 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp
-@@ -262,7 +262,9 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
- RenderTarget11* maskedClearDepthStencil = nullptr;
-
- ID3D11DeviceContext *deviceContext = mRenderer->getDeviceContext();
-+#if defined(ANGLE_ENABLE_D3D11_1)
- ID3D11DeviceContext1 *deviceContext1 = mRenderer->getDeviceContext1IfSupported();
-+#endif
- ID3D11Device *device = mRenderer->getDevice();
-
- for (size_t colorAttachmentIndex = 0; colorAttachmentIndex < colorAttachments.size();
-@@ -347,6 +349,7 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
- clearValues[3] = (clearParams.colorFClearValue.alpha >= 0.5f) ? 1.0f : 0.0f;
- }
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- if (needScissoredClear)
- {
- // We shouldn't reach here if deviceContext1 is unavailable.
-@@ -361,6 +364,7 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
- deviceContext1->ClearView(framebufferRTV, clearValues, &rect, 1);
- }
- else
-+#endif
- {
- deviceContext->ClearRenderTargetView(framebufferRTV, clearValues);
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-index 2e42859..1c35ab4 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp
-@@ -27,7 +27,9 @@ DebugAnnotator11::~DebugAnnotator11()
- {
- if (mInitialized)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(mUserDefinedAnnotation);
-+#endif
-
- #if !defined(ANGLE_ENABLE_WINDOWS_STORE)
- FreeLibrary(mD3d11Module);
-@@ -41,7 +43,9 @@ void DebugAnnotator11::beginEvent(const wchar_t *eventName)
-
- if (mUserDefinedAnnotation != nullptr)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->BeginEvent(eventName);
-+#endif
- }
- }
-
-@@ -51,7 +55,9 @@ void DebugAnnotator11::endEvent()
-
- if (mUserDefinedAnnotation != nullptr)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->EndEvent();
-+#endif
- }
- }
-
-@@ -61,7 +67,9 @@ void DebugAnnotator11::setMarker(const wchar_t *markerName)
-
- if (mUserDefinedAnnotation != nullptr)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->SetMarker(markerName);
-+#endif
- }
- }
-
-@@ -137,8 +145,10 @@ void DebugAnnotator11::initializeDevice()
- ASSERT(SUCCEEDED(hr));
- if (SUCCEEDED(hr))
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation = d3d11::DynamicCastComObject<ID3DUserDefinedAnnotation>(context);
- ASSERT(mUserDefinedAnnotation != nullptr);
-+#endif
- mInitialized = true;
- }
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h
-index 9da4fa2..d1a0f7f 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h
-@@ -11,6 +11,8 @@
-
- #include "common/debug.h"
-
-+struct ID3DUserDefinedAnnotation;
-+
- namespace rx
- {
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp
-index beffa30..186a035 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp
-@@ -140,6 +140,7 @@ gl::Error Framebuffer11::discard(size_t count, const GLenum *attachments)
-
- gl::Error Framebuffer11::invalidateBase(size_t count, const GLenum *attachments, bool useEXTBehavior) const
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- ID3D11DeviceContext1 *deviceContext1 = mRenderer->getDeviceContext1IfSupported();
-
- if (!deviceContext1)
-@@ -272,6 +273,7 @@ gl::Error Framebuffer11::invalidateBase(size_t count, const GLenum *attachments,
- deviceContext1->DiscardView(stencilView);
- }
- }
-+#endif // ANGLE_ENABLE_D3D11_1
-
- return gl::Error(GL_NO_ERROR);
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-index c015ff4..c0bed2b 100644
-index c015ff4..972c289 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-@@ -13,6 +13,20 @@
-
- #include <GLES2/gl2ext.h>
-
-+#if defined(ANGLE_MINGW32_COMPAT)
-+typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
-+ UINT64 NumPrimitivesWritten;
-+ UINT64 PrimitivesStorageNeeded;
-+} D3D11_QUERY_DATA_SO_STATISTICS;
-+#endif // ANGLE_MINGW32_COMPAT
-+
-+#ifdef __MINGW32__
-+typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
-+ UINT64 Frequency;
-+ BOOL Disjoint;
-+} D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
-+#endif // MINGW32
-+
- namespace rx
- {
-
-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 ea84783..62badcc 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-@@ -10,7 +10,7 @@
-
- #include <EGL/eglext.h>
- #include <sstream>
--#if WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
-+#if !defined(ANGLE_MINGW32_COMPAT) && WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP
- #include <VersionHelpers.h>
- #endif
-
-@@ -89,6 +89,7 @@ enum
- MAX_TEXTURE_IMAGE_UNITS_VTF_SM4 = 16
- };
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- void CalculateConstantBufferParams(GLintptr offset, GLsizeiptr size, UINT *outFirstConstant, UINT *outNumConstants)
- {
- // The offset must be aligned to 256 bytes (should have been enforced by glBindBufferRange).
-@@ -105,6 +106,7 @@ void CalculateConstantBufferParams(GLintptr offset, GLsizeiptr size, UINT *outFi
- // This behaviour is explictly allowed according to the documentation on ID3D11DeviceContext1::PSSetConstantBuffers1
- // https://msdn.microsoft.com/en-us/library/windows/desktop/hh404649%28v=vs.85%29.aspx
- }
-+#endif
-
- enum ANGLEFeatureLevel
- {
-@@ -369,8 +371,10 @@ Renderer11::Renderer11(egl::Display *display)
- : RendererD3D(display),
- mStateCache(this),
- mStateManager(this),
-- mLastHistogramUpdateTime(ANGLEPlatformCurrent()->monotonicallyIncreasingTime()),
-- mDebug(nullptr)
-+ mLastHistogramUpdateTime(ANGLEPlatformCurrent()->monotonicallyIncreasingTime())
-+#if !defined(ANGLE_MINGW32_COMPAT)
-+ ,mDebug(nullptr)
-+#endif
- {
- mVertexDataManager = NULL;
- mIndexDataManager = NULL;
-@@ -572,7 +576,9 @@ egl::Error Renderer11::initialize()
- // Cast the DeviceContext to a DeviceContext1.
- // This could fail on Windows 7 without the Platform Update.
- // Don't error in this case- just don't use mDeviceContext1.
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mDeviceContext1 = d3d11::DynamicCastComObject<ID3D11DeviceContext1>(mDeviceContext);
-+#endif
-
- IDXGIDevice *dxgiDevice = NULL;
- result = mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice);
-@@ -595,6 +601,7 @@ egl::Error Renderer11::initialize()
-
- SafeRelease(dxgiDevice);
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- IDXGIAdapter2 *dxgiAdapter2 = d3d11::DynamicCastComObject<IDXGIAdapter2>(mDxgiAdapter);
-
- // On D3D_FEATURE_LEVEL_9_*, IDXGIAdapter::GetDesc returns "Software Adapter" for the description string.
-@@ -618,11 +625,14 @@ egl::Error Renderer11::initialize()
- }
- }
- else
-+#endif
- {
- result = mDxgiAdapter->GetDesc(&mAdapterDescription);
- }
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(dxgiAdapter2);
-+#endif
-
- if (FAILED(result))
- {
-@@ -644,6 +654,7 @@ egl::Error Renderer11::initialize()
- }
- }
-
-+#if !defined(ANGLE_MINGW32_COMPAT)
- // Disable some spurious D3D11 debug warnings to prevent them from flooding the output log
- #if defined(ANGLE_SUPPRESS_D3D11_HAZARD_WARNINGS) && defined(_DEBUG)
- {
-@@ -671,6 +682,7 @@ egl::Error Renderer11::initialize()
- #if !defined(NDEBUG)
- mDebug = d3d11::DynamicCastComObject<ID3D11Debug>(mDevice);
- #endif
-+#endif // !ANGLE_MINGW32_COMPAT
-
- initializeDevice();
-
-@@ -859,6 +871,7 @@ void Renderer11::populateRenderer11DeviceCaps()
- {
- HRESULT hr = S_OK;
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- if (mDeviceContext1)
- {
- D3D11_FEATURE_DATA_D3D11_OPTIONS d3d11Options;
-@@ -869,6 +882,7 @@ void Renderer11::populateRenderer11DeviceCaps()
- mRenderer11DeviceCaps.supportsConstantBufferOffsets = (d3d11Options.ConstantBufferOffsetting != FALSE);
- }
- }
-+#endif
-
- hr = mDevice->CheckFormatSupport(DXGI_FORMAT_B5G6R5_UNORM, &(mRenderer11DeviceCaps.B5G6R5support));
- if (FAILED(hr))
-@@ -888,9 +902,11 @@ void Renderer11::populateRenderer11DeviceCaps()
- mRenderer11DeviceCaps.B5G5R5A1support = 0;
- }
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- IDXGIAdapter2 *dxgiAdapter2 = d3d11::DynamicCastComObject<IDXGIAdapter2>(mDxgiAdapter);
- mRenderer11DeviceCaps.supportsDXGI1_2 = (dxgiAdapter2 != nullptr);
- SafeRelease(dxgiAdapter2);
-+#endif
- }
-
- egl::ConfigSet Renderer11::generateConfigs() const
-@@ -1308,6 +1324,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- mCurrentConstantBufferVSOffset[uniformBufferIndex] != uniformBufferOffset ||
- mCurrentConstantBufferVSSize[uniformBufferIndex] != uniformBufferSize)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- if (mRenderer11DeviceCaps.supportsConstantBufferOffsets && uniformBufferSize != 0)
- {
- UINT firstConstant = 0, numConstants = 0;
-@@ -1318,6 +1335,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- 1, &constantBuffer, &firstConstant, &numConstants);
- }
- else
-+#endif
- {
- mDeviceContext->VSSetConstantBuffers(
- getReservedVertexUniformBuffers() +
-@@ -1369,6 +1387,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- mCurrentConstantBufferPSOffset[uniformBufferIndex] != uniformBufferOffset ||
- mCurrentConstantBufferPSSize[uniformBufferIndex] != uniformBufferSize)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- if (mRenderer11DeviceCaps.supportsConstantBufferOffsets && uniformBufferSize != 0)
- {
- UINT firstConstant = 0, numConstants = 0;
-@@ -1379,6 +1398,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- 1, &constantBuffer, &firstConstant, &numConstants);
- }
- else
-+#endif
- {
- mDeviceContext->PSSetConstantBuffers(
- getReservedFragmentUniformBuffers() +
-@@ -2448,7 +2468,9 @@ void Renderer11::release()
- SafeRelease(mDxgiFactory);
- SafeRelease(mDxgiAdapter);
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(mDeviceContext1);
-+#endif
-
- if (mDeviceContext)
- {
-@@ -2458,7 +2480,9 @@ void Renderer11::release()
- }
-
- SafeRelease(mDevice);
-+#if !defined(ANGLE_MINGW32_COMPAT)
- SafeRelease(mDebug);
-+#endif
-
- if (mD3d11Module)
- {
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
-index 62e9816..b4e7761 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
-@@ -28,6 +28,8 @@ class FramebufferAttachment;
- struct ImageIndex;
- }
-
-+struct ID3D11DeviceContext1;
-+
- namespace rx
- {
-
-@@ -442,7 +444,9 @@ class Renderer11 : public RendererD3D
- DXGI_ADAPTER_DESC mAdapterDescription;
- char mDescription[128];
- DXGIFactory *mDxgiFactory;
-+#if !defined(ANGLE_MINGW32_COMPAT)
- ID3D11Debug *mDebug;
-+#endif
-
- std::vector<GLuint> mScratchIndexDataBuffer;
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index f669f56..f80f24b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -58,7 +58,9 @@ SwapChain11::SwapChain11(Renderer11 *renderer,
- mPassThroughResourcesInit(false),
- mFirstSwap(true),
- mSwapChain(nullptr),
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mSwapChain1(nullptr),
-+#endif
- mKeyedMutex(nullptr),
- mBackBufferTexture(nullptr),
- mBackBufferRTView(nullptr),
-@@ -90,7 +92,9 @@ SwapChain11::~SwapChain11()
-
- void SwapChain11::release()
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(mSwapChain1);
-+#endif
- SafeRelease(mSwapChain);
- SafeRelease(mKeyedMutex);
- SafeRelease(mBackBufferTexture);
-@@ -533,7 +537,9 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
-
- // Release specific resources to free up memory for the new render target, while the
- // old render target still exists for the purpose of preserving its contents.
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(mSwapChain1);
-+#endif
- SafeRelease(mSwapChain);
- SafeRelease(mBackBufferTexture);
- SafeRelease(mBackBufferRTView);
-@@ -568,7 +574,9 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
-
- if (mRenderer->getRenderer11DeviceCaps().supportsDXGI1_2)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- mSwapChain1 = d3d11::DynamicCastComObject<IDXGISwapChain1>(mSwapChain);
-+#endif
- }
-
- result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mBackBufferTexture);
-@@ -837,6 +845,7 @@ EGLint SwapChain11::present(EGLint x, EGLint y, EGLint width, EGLint height)
-
- HRESULT result = S_OK;
-
-+#if defined(ANGLE_ENABLE_D3D11_1)
- // Use IDXGISwapChain1::Present1 with a dirty rect if DXGI 1.2 is available.
- if (mSwapChain1 != nullptr)
- {
-@@ -855,6 +864,7 @@ EGLint SwapChain11::present(EGLint x, EGLint y, EGLint width, EGLint height)
- }
- }
- else
-+#endif
- {
- result = mSwapChain->Present(swapInterval, 0);
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
-index 99198c6..adcd07a 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
-@@ -75,7 +75,9 @@ class SwapChain11 : public SwapChainD3D
-
- bool mFirstSwap;
- DXGISwapChain *mSwapChain;
-+#if defined(ANGLE_ENABLE_D3D11_1)
- IDXGISwapChain1 *mSwapChain1;
-+#endif
- IDXGIKeyedMutex *mKeyedMutex;
-
- ID3D11Texture2D *mBackBufferTexture;
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
-index d1f3ea0..a1175db 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
-@@ -23,6 +23,88 @@
- #include "libANGLE/renderer/d3d/FramebufferD3D.h"
- #include "libANGLE/renderer/d3d/WorkaroundsD3D.h"
-
-+#ifndef D3D_FL9_1_DEFAULT_MAX_ANISOTROPY
-+# define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2
-+#endif
-+#ifndef D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT
-+# define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1
-+#endif
-+#ifndef D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT
-+# define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4
-+#endif
-+#ifndef D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT
-+# define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535
-+#endif
-+#ifndef D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT
-+# define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575
-+#endif
-+#ifndef D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION
-+# define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512
-+#endif
-+#ifndef D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION
-+# define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096
-+#endif
-+#ifndef D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION
-+# define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048
-+#endif
-+#ifndef D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION
-+# define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256
-+#endif
-+#ifndef D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION
-+# define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096
-+#endif
-+#ifndef D3D11_REQ_TEXTURECUBE_DIMENSION
-+# define D3D11_REQ_TEXTURECUBE_DIMENSION 16384
-+#endif
-+#ifndef D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION
-+# define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION 2048
-+#endif
-+#ifndef D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION
-+# define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 2048
-+#endif
-+#ifndef D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP
-+# define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP 32
-+#endif
-+#ifndef D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP
-+# define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP 32
-+#endif
-+#ifndef D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT
-+# define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT 32
-+#endif
-+#ifndef D3D11_STANDARD_VERTEX_ELEMENT_COUNT
-+# define D3D11_STANDARD_VERTEX_ELEMENT_COUNT 32
-+#endif
-+#ifndef D3D10_1_SO_BUFFER_SLOT_COUNT
-+# define D3D10_1_SO_BUFFER_SLOT_COUNT 4
-+#endif
-+#ifndef D3D11_SO_BUFFER_SLOT_COUNT
-+# define D3D11_SO_BUFFER_SLOT_COUNT 4
-+#endif
-+#ifndef D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
-+# define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT 14
-+#endif
-+#ifndef D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT
-+# define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT 16
-+#endif
-+#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE
-+# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE -8
-+#endif
-+#ifndef D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE
-+# define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE 7
-+#endif
-+#ifndef D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT
-+# define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT 4096
-+#endif
-+#ifndef D3D11_PS_INPUT_REGISTER_COUNT
-+# define D3D11_PS_INPUT_REGISTER_COUNT 32
-+#endif
-+#ifndef D3D10_1_VS_OUTPUT_REGISTER_COUNT
-+# define D3D10_1_VS_OUTPUT_REGISTER_COUNT 32
-+#endif
-+#if defined(ANGLE_MINGW32_COMPAT)
-+static const IID WKPDID_D3DDebugObjectName = { 0x429b8c22, 0x9188, 0x4b0c, 0x87, 0x42, 0xac, 0xb0, 0xbf, 0x85, 0xc2, 0x00 };
-+#endif
-+
- namespace rx
- {
-
-@@ -601,7 +683,9 @@ static size_t GetMaximumCubeMapTextureSize(D3D_FEATURE_LEVEL featureLevel)
- {
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURECUBE_DIMENSION;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -619,7 +703,9 @@ static size_t GetMaximum2DTextureArraySize(D3D_FEATURE_LEVEL featureLevel)
- {
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -1266,7 +1352,9 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
-
- IDXGIDevice *dxgiDevice = nullptr;
- IDXGIAdapter *dxgiAdapter = nullptr;
-+#if defined(ANGLE_ENABLE_D3D11_1)
- IDXGIAdapter2 *dxgiAdapter2 = nullptr;
-+#endif
-
- ANGLED3D11DeviceType retDeviceType = ANGLE_D3D11_DEVICE_TYPE_UNKNOWN;
-
-@@ -1277,6 +1365,7 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
- if (SUCCEEDED(hr))
- {
- std::wstring adapterString;
-+#if defined(ANGLE_ENABLE_D3D11_1)
- HRESULT adapter2hr =
- dxgiAdapter->QueryInterface(__uuidof(dxgiAdapter2), (void **)&dxgiAdapter2);
- if (SUCCEEDED(adapter2hr))
-@@ -1289,6 +1378,7 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
- adapterString = std::wstring(adapterDesc2.Description);
- }
- else
-+#endif
- {
- DXGI_ADAPTER_DESC adapterDesc;
- dxgiAdapter->GetDesc(&adapterDesc);
-@@ -1320,7 +1410,9 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
-
- SafeRelease(dxgiDevice);
- SafeRelease(dxgiAdapter);
-+#if defined(ANGLE_ENABLE_D3D11_1)
- SafeRelease(dxgiAdapter2);
-+#endif
-
- return retDeviceType;
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-index 123b481..cd63789 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-@@ -12,7 +12,9 @@
- #include "common/debug.h"
-
- #include <initguid.h>
-+#if !defined(__MINGW32__)
- #include <dcomp.h>
-+#endif
-
- namespace rx
- {
-@@ -31,9 +33,11 @@ NativeWindow::NativeWindow(EGLNativeWindowType window,
-
- NativeWindow::~NativeWindow()
- {
-+#if !defined(__MINGW32__)
- SafeRelease(mCompositionTarget);
- SafeRelease(mDevice);
- SafeRelease(mVisual);
-+#endif
- }
-
- bool NativeWindow::initialize()
-@@ -66,6 +70,7 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
- return E_INVALIDARG;
- }
-
-+#if !defined(__MINGW32__)
- if (mDirectComposition)
- {
- HMODULE dcomp = ::GetModuleHandle(TEXT("dcomp.dll"));
-@@ -171,6 +176,7 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
- SafeRelease(factory2);
- return result;
- }
-+#endif // !__MINGW32__
-
- DXGI_SWAP_CHAIN_DESC swapChainDesc = {};
- swapChainDesc.BufferCount = 1;
-@@ -202,9 +208,11 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
-
- void NativeWindow::commitChange()
- {
-+#if !defined(__MINGW32__)
- if (mDevice)
- {
- mDevice->Commit();
- }
-+#endif
- }
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
-index cba74c1..6bb975b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
-@@ -193,7 +193,7 @@ egl::Error Renderer9::initialize()
- {
- TRACE_EVENT0("gpu.angle", "D3d9Ex_QueryInterface");
- ASSERT(mD3d9Ex);
-- mD3d9Ex->QueryInterface(__uuidof(IDirect3D9), reinterpret_cast<void**>(&mD3d9));
-+ mD3d9Ex->QueryInterface(IID_IDirect3D9, reinterpret_cast<void**>(&mD3d9));
- ASSERT(mD3d9);
- }
- else
-@@ -301,7 +301,7 @@ egl::Error Renderer9::initialize()
- if (mD3d9Ex)
- {
- TRACE_EVENT0("gpu.angle", "mDevice_QueryInterface");
-- result = mDevice->QueryInterface(__uuidof(IDirect3DDevice9Ex), (void**)&mDeviceEx);
-+ result = mDevice->QueryInterface(IID_IDirect3DDevice9Ex, (void**)&mDeviceEx);
- ASSERT(SUCCEEDED(result));
- }
-
-diff --git a/src/3rdparty/angle/src/libEGL/libEGL_mingw32.def b/src/3rdparty/angle/src/libEGL/libEGL_mingw32.def
-index 6a771a5..c8f941a 100644
---- a/src/3rdparty/angle/src/libEGL/libEGL_mingw32.def
-+++ b/src/3rdparty/angle/src/libEGL/libEGL_mingw32.def
-@@ -39,15 +39,22 @@ EXPORTS
- eglGetPlatformDisplayEXT@12 @35
- eglQuerySurfacePointerANGLE@16 @36
- eglPostSubBufferNV@24 @37
-+ eglQueryDisplayAttribEXT@12 @48
-+ eglQueryDeviceAttribEXT@12 @49
-+ eglQueryDeviceStringEXT@8 @50
-+ eglCreateImageKHR@20 @51
-+ eglDestroyImageKHR@8 @52
-+ eglCreateDeviceANGLE@12 @53
-+ eglReleaseDeviceANGLE@4 @54
-
- ; 1.5 entry points
-- eglCreateSync @38
-- eglDestroySync @39
-- eglClientWaitSync @40
-- eglGetSyncAttrib @41
-- eglCreateImage @42
-- eglDestroyImage @43
-- eglGetPlatformDisplay @44
-- eglCreatePlatformWindowSurface @45
-- eglCreatePlatformPixmapSurface @46
-- eglWaitSync @47
-+ eglCreateSync@12 @38
-+ eglDestroySync@8 @39
-+ eglClientWaitSync@16 @40
-+ eglGetSyncAttrib@16 @41
-+ eglCreateImage@20 @42
-+ eglDestroyImage@8 @43
-+ eglGetPlatformDisplay@12 @44
-+ eglCreatePlatformWindowSurface@16 @45
-+ eglCreatePlatformPixmapSurface@16 @46
-+ eglWaitSync@12 @47
-diff --git a/src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def b/src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def
-index ab0320d..a4a9d95 100644
---- a/src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def
-+++ b/src/3rdparty/angle/src/libEGL/libEGLd_mingw32.def
-@@ -39,3 +39,22 @@ EXPORTS
- eglGetPlatformDisplayEXT@12 @35
- eglQuerySurfacePointerANGLE@16 @36
- eglPostSubBufferNV@24 @37
-+ eglQueryDisplayAttribEXT@12 @48
-+ eglQueryDeviceAttribEXT@12 @49
-+ eglQueryDeviceStringEXT@8 @50
-+ eglCreateImageKHR@20 @51
-+ eglDestroyImageKHR@8 @52
-+ eglCreateDeviceANGLE@12 @53
-+ eglReleaseDeviceANGLE@4 @54
-+
-+ ; 1.5 entry points
-+ eglCreateSync@12 @38
-+ eglDestroySync@8 @39
-+ eglClientWaitSync@16 @40
-+ eglGetSyncAttrib@16 @41
-+ eglCreateImage@20 @42
-+ eglDestroyImage@8 @43
-+ eglGetPlatformDisplay@12 @44
-+ eglCreatePlatformWindowSurface@16 @45
-+ eglCreatePlatformPixmapSurface@16 @46
-+ eglWaitSync@12 @47
-diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2_mingw32.def b/src/3rdparty/angle/src/libGLESv2/libGLESv2_mingw32.def
-index e02b85b..db17bb4 100644
---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2_mingw32.def
-+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2_mingw32.def
-@@ -177,6 +177,31 @@ EXPORTS
- glGetBufferPointervOES@12 @287
- glMapBufferRangeEXT@16 @288
- glFlushMappedBufferRangeEXT@12 @289
-+ glDiscardFramebufferEXT@12 @293
-+ glInsertEventMarkerEXT@8 @294
-+ glPushGroupMarkerEXT@8 @295
-+ glPopGroupMarkerEXT@0 @296
-+ glEGLImageTargetTexture2DOES@8 @297
-+ glEGLImageTargetRenderbufferStorageOES@8 @298
-+ glBindVertexArrayOES@4 @299
-+ glDeleteVertexArraysOES@8 @300
-+ glGenVertexArraysOES@8 @301
-+ glIsVertexArrayOES@4 @302
-+ glDebugMessageControlKHR@24 @303
-+ glDebugMessageInsertKHR@24 @304
-+ glDebugMessageCallbackKHR@8 @305
-+ glGetDebugMessageLogKHR@32 @306
-+ glPushDebugGroupKHR@16 @307
-+ glPopDebugGroupKHR@0 @308
-+ glObjectLabelKHR@16 @309
-+ glGetObjectLabelKHR@20 @310
-+ glObjectPtrLabelKHR@12 @311
-+ glGetObjectPtrLabelKHR@16 @312
-+ glGetPointervKHR@8 @313
-+ glQueryCounterEXT@8 @314
-+ glGetQueryObjectivEXT@12 @315
-+ glGetQueryObjecti64vEXT@12 @316
-+ glGetQueryObjectui64vEXT@12 @317
-
- ; GLES 3.0 Functions
- glReadBuffer@4 @180
-@@ -284,5 +309,8 @@ EXPORTS
- glTexStorage3D@24 @282
- glGetInternalformativ@20 @283
-
-- ; Setting up TRACE macro callbacks
-- SetTraceFunctionPointers@8 @284
-+ ; ANGLE Platform Implementation
-+ ANGLEPlatformCurrent@0 @290
-+ ANGLEPlatformInitialize@4 @291
-+ ANGLEPlatformShutdown@0 @292
-+
-\ No newline at end of file
-diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2d_mingw32.def b/src/3rdparty/angle/src/libGLESv2/libGLESv2d_mingw32.def
-index e2b2c33..5a4966f 100644
---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2d_mingw32.def
-+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2d_mingw32.def
-@@ -177,6 +177,31 @@ EXPORTS
- glGetBufferPointervOES@12 @287
- glMapBufferRangeEXT@16 @288
- glFlushMappedBufferRangeEXT@12 @289
-+ glDiscardFramebufferEXT@12 @293
-+ glInsertEventMarkerEXT@8 @294
-+ glPushGroupMarkerEXT@8 @295
-+ glPopGroupMarkerEXT@0 @296
-+ glEGLImageTargetTexture2DOES@8 @297
-+ glEGLImageTargetRenderbufferStorageOES@8 @298
-+ glBindVertexArrayOES@4 @299
-+ glDeleteVertexArraysOES@8 @300
-+ glGenVertexArraysOES@8 @301
-+ glIsVertexArrayOES@4 @302
-+ glDebugMessageControlKHR@24 @303
-+ glDebugMessageInsertKHR@24 @304
-+ glDebugMessageCallbackKHR@8 @305
-+ glGetDebugMessageLogKHR@32 @306
-+ glPushDebugGroupKHR@16 @307
-+ glPopDebugGroupKHR@0 @308
-+ glObjectLabelKHR@16 @309
-+ glGetObjectLabelKHR@20 @310
-+ glObjectPtrLabelKHR@12 @311
-+ glGetObjectPtrLabelKHR@16 @312
-+ glGetPointervKHR@8 @313
-+ glQueryCounterEXT@8 @314
-+ glGetQueryObjectivEXT@12 @315
-+ glGetQueryObjecti64vEXT@12 @316
-+ glGetQueryObjectui64vEXT@12 @317
-
- ; GLES 3.0 Functions
- glReadBuffer@4 @180
-@@ -284,5 +309,8 @@ EXPORTS
- glTexStorage3D@24 @282
- glGetInternalformativ@20 @283
-
-- ; Setting up TRACE macro callbacks
-- SetTraceFunctionPointers@8 @284
-+ ; ANGLE Platform Implementation
-+ ANGLEPlatformCurrent@0 @290
-+ ANGLEPlatformInitialize@4 @291
-+ ANGLEPlatformShutdown@0 @292
-+
-\ No newline at end of file
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0006-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-requirements.patch b/src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
index eb0572f201..1f51619f18 100644
--- a/src/angle/patches/0006-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-requirements.patch
+++ b/src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
@@ -1,7 +1,8 @@
-From b250c8e9c04cd1adccab7a6885273c9e6129131f Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 1 Mar 2016 14:16:52 +0100
-Subject: [PATCH 6/7] ANGLE: Fix Windows Store D3D Trim and Level 9 requirements
+From 9b37d0fa0e9eaab3d8bb1dcbba85c072302ee08c Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 13:01:10 +0200
+Subject: [PATCH 3/8] ANGLE: Fix Windows Store D3D Trim and Level 9
+ requirements
Due to additional validation not covered in previous patches, the Windows
Store certification compatibility had regressed. These changes ensure that
@@ -14,12 +15,12 @@ Change-Id: If8bc2f8cd4b2f84e1d92a1627951da2537212125
2 files changed, 16 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 03159bb..ea84783 100644
+index bd14f4de2a..f696e360ef 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
-@@ -453,7 +453,20 @@ Renderer11::Renderer11(egl::Display *display)
+@@ -523,7 +523,20 @@ Renderer11::Renderer11(egl::Display *display)
+
if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
- #endif
{
- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3)
@@ -38,12 +39,12 @@ index 03159bb..ea84783 100644
+#endif
}
- EGLint requestedDeviceType = attributes.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE,
+ EGLint requestedDeviceType = static_cast<EGLint>(attributes.get(
diff --git a/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp b/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
-index e3c35d5..6c7e2ff 100644
+index b863817920..ee8cdb94dc 100644
--- a/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
+++ b/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
-@@ -50,6 +50,8 @@ EGLBoolean EGLAPIENTRY QuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surfa
+@@ -54,6 +54,8 @@ EGLBoolean EGLAPIENTRY QuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surfa
// validate the attribute parameter
switch (attribute)
{
@@ -53,5 +54,5 @@ index e3c35d5..6c7e2ff 100644
if (!display->getExtensions().surfaceD3DTexture2DShareHandle)
{
--
-2.7.0.windows.1
+2.15.0.windows.1
diff --git a/src/angle/patches/0004-ANGLE-Allow-Windows-Phone-to-communicate-swap-region.patch b/src/angle/patches/0004-ANGLE-Allow-Windows-Phone-to-communicate-swap-region.patch
deleted file mode 100644
index 4d7080e77d..0000000000
--- a/src/angle/patches/0004-ANGLE-Allow-Windows-Phone-to-communicate-swap-region.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From a0c84bec77dd2dab4dd87add17dd1f21e6d8087d Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 1 Mar 2016 13:39:06 +0100
-Subject: [PATCH 4/7] ANGLE: Allow Windows Phone to communicate swap region
-
-eglPostSubBufferNV is used to communicate the size of the window, as
-otherwise there is no way for the renderer to know if the last frame was
-rendered in landscape or portrait, causing rendering glitches when the
-orientation changes. The rotation flags are utilized in a few additional
-places now to fix some corner cases where the rotation was not applied.
-
-This patch should be squashed into "ANGLE-Improve-Windows-Phone-Support"
-during the next ANGLE rebase.
-
-Task-number: QTBUG-44333
-Task-number: QTBUG-43502
-
-Change-Id: I2b35c41ed17004524f383350253a936e6bf85117
----
- .../angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 2 ++
- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 28 +++++++++++++---------
- .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 5 ++--
- .../angle/src/libGLESv2/entry_points_egl_ext.cpp | 2 ++
- 4 files changed, 24 insertions(+), 13 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-index 0347828..3d27548 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-@@ -211,6 +211,7 @@ egl::Error SurfaceD3D::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
- return egl::Error(EGL_SUCCESS);
- }
-
-+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (defined(ANGLE_ENABLE_WINDOWS_STORE) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) // Qt WP: eglPostSubBufferNV comes here
- if (x + width > mWidth)
- {
- width = mWidth - x;
-@@ -220,6 +221,7 @@ egl::Error SurfaceD3D::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
- {
- height = mHeight - y;
- }
-+#endif
-
- if (width != 0 && height != 0)
- {
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index 5a6f202..f669f56 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -717,18 +717,18 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
-
- d3d11::PositionTexCoordVertex *vertices = static_cast<d3d11::PositionTexCoordVertex*>(mappedResource.pData);
-
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
- // Create a quad in homogeneous coordinates
-- float x1 = (x / float(mWidth)) * 2.0f - 1.0f;
-- float y1 = (y / float(mHeight)) * 2.0f - 1.0f;
-- float x2 = ((x + width) / float(mWidth)) * 2.0f - 1.0f;
-- float y2 = ((y + height) / float(mHeight)) * 2.0f - 1.0f;
-+ float x1 = -1.0f;
-+ float y1 = -1.0f;
-+ float x2 = 1.0f;
-+ float y2 = 1.0f;
-
--#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
- const float dim = std::max(mWidth, mHeight);
-- float u1 = x / dim;
-- float v1 = y / dim;
-- float u2 = (x + width) / dim;
-- float v2 = (y + height) / dim;
-+ float u1 = 0;
-+ float v1 = 0;
-+ float u2 = float(width) / dim;
-+ float v2 = float(height) / dim;
-
- const NativeWindow::RotationFlags flags = mNativeWindow.rotationFlags();
- const bool rotateL = flags == NativeWindow::RotateLeft;
-@@ -738,6 +738,12 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, rotateR ? u1 : u2, rotateL ? v2 : v1);
- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, rotateL ? u1 : u2, rotateR ? v1 : v2);
- #else
-+ // Create a quad in homogeneous coordinates
-+ float x1 = (x / float(mWidth)) * 2.0f - 1.0f;
-+ float y1 = (y / float(mHeight)) * 2.0f - 1.0f;
-+ float x2 = ((x + width) / float(mWidth)) * 2.0f - 1.0f;
-+ float y2 = ((y + height) / float(mHeight)) * 2.0f - 1.0f;
-+
- float u1 = x / float(mWidth);
- float v1 = y / float(mHeight);
- float u2 = (x + width) / float(mWidth);
-@@ -788,8 +794,8 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- viewport.TopLeftX = 0;
- viewport.TopLeftY = 0;
- #if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-- viewport.Width = (rotateL || rotateR) ? mHeight : mWidth;
-- viewport.Height = (rotateL || rotateR) ? mWidth : mHeight;
-+ viewport.Width = (rotateL || rotateR) ? height : width;
-+ viewport.Height = (rotateL || rotateR) ? width : height;
- #else
- viewport.Width = static_cast<FLOAT>(mWidth);
- viewport.Height = static_cast<FLOAT>(mHeight);
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-index 6a4795a..b074e8c 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-@@ -132,6 +132,7 @@ bool CoreWindowNativeWindow::registerForSizeChangeEvents()
- if (SUCCEEDED(result))
- {
- result = mDisplayInformation->add_OrientationChanged(orientationChangedHandler.Get(), &mOrientationChangedEventToken);
-+ orientationChangedHandler->Invoke(mDisplayInformation.Get(), nullptr);
- }
- #endif
-
-@@ -175,8 +176,8 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
- }
-
- DXGI_SWAP_CHAIN_DESC1 swapChainDesc = { 0 };
-- swapChainDesc.Width = width;
-- swapChainDesc.Height = height;
-+ swapChainDesc.Width = mRotationFlags ? height : width;
-+ swapChainDesc.Height = mRotationFlags ? width : height;
- swapChainDesc.Format = format;
- swapChainDesc.Stereo = FALSE;
- swapChainDesc.SampleDesc.Count = 1;
-diff --git a/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp b/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
-index 7536b19..e3c35d5 100644
---- a/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp
-@@ -108,12 +108,14 @@ EGLBoolean EGLAPIENTRY PostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLin
- return EGL_FALSE;
- }
-
-+#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (defined(ANGLE_ENABLE_WINDOWS_STORE) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) // Qt WP: Allow this entry point as a workaround
- if (!display->getExtensions().postSubBuffer)
- {
- // Spec is not clear about how this should be handled.
- SetGlobalError(Error(EGL_SUCCESS));
- return EGL_TRUE;
- }
-+#endif
-
- error = eglSurface->postSubBuffer(x, y, width, height);
- if (error.isError())
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0004-ANGLE-fix-usage-of-shared-handles-for-WinRT-applicat.patch b/src/angle/patches/0004-ANGLE-fix-usage-of-shared-handles-for-WinRT-applicat.patch
new file mode 100644
index 0000000000..72a72f15be
--- /dev/null
+++ b/src/angle/patches/0004-ANGLE-fix-usage-of-shared-handles-for-WinRT-applicat.patch
@@ -0,0 +1,37 @@
+From 67125df3f31dfad0feec81c49c2b317c6d418f4e Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 13:08:19 +0200
+Subject: [PATCH 4/8] ANGLE: fix usage of shared handles for WinRT applications
+
+The check is not relevant in Qt's context and was skipped before but
+it sneaked back in with the latest ANGLE update.
+
+Change-Id: Ic44de5468a3254afd76ef4804d97d245676daeb1
+---
+ src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 3 +++
+ 1 file changed, 3 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 f696e360ef..cb4e51e42a 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+@@ -2270,6 +2270,8 @@ 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)
+@@ -2277,6 +2279,7 @@ bool Renderer11::getShareHandleSupport() const
+ mSupportsShareHandles = false;
+ return false;
+ }
++#endif
+
+ // Find out which type of D3D11 device the Renderer11 is using
+ d3d11::ANGLED3D11DeviceType deviceType = getDeviceType();
+--
+2.15.0.windows.1
+
diff --git a/src/angle/patches/0005-ANGLE-Fix-compilation-without-d3d11.patch b/src/angle/patches/0005-ANGLE-Fix-compilation-without-d3d11.patch
deleted file mode 100644
index f32702dadf..0000000000
--- a/src/angle/patches/0005-ANGLE-Fix-compilation-without-d3d11.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c224d27faf33fe2830b35eba22af0a637e1309cb Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 1 Mar 2016 14:14:29 +0100
-Subject: [PATCH 5/7] ANGLE: Fix compilation without d3d11
-
-Change-Id: I70ca8ef8ed205465a20c47756634ef6efc16ce85
----
- src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h | 4 +++-
- .../angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp | 2 ++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-index 1c94538..612b06b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/NativeWindow.h
-@@ -39,7 +39,7 @@ class InspectableNativeWindow;
- using namespace Microsoft::WRL;
- using namespace Microsoft::WRL::Wrappers;
-
--#else
-+#elif defined(ANGLE_ENABLE_D3D11)
- typedef IDXGISwapChain DXGISwapChain;
- typedef IDXGIFactory DXGIFactory;
- #endif
-@@ -68,9 +68,11 @@ class NativeWindow
- #endif
- static bool isValidNativeWindow(EGLNativeWindowType window);
-
-+#if defined(ANGLE_ENABLE_D3D11)
- HRESULT createSwapChain(ID3D11Device* device, DXGIFactory* factory,
- DXGI_FORMAT format, UINT width, UINT height,
- DXGISwapChain** swapChain);
-+#endif
-
- inline EGLNativeWindowType getNativeWindow() const { return mWindow; }
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-index 05d7a46..d96fed7 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-@@ -56,6 +56,7 @@ bool NativeWindow::isValidNativeWindow(EGLNativeWindowType window)
- return IsWindow(window) == TRUE;
- }
-
-+#if defined(ANGLE_ENABLE_D3D11)
- HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory,
- DXGI_FORMAT format, unsigned int width, unsigned int height,
- DXGISwapChain** swapChain)
-@@ -191,6 +192,7 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
-
- return factory->CreateSwapChain(device, &swapChainDesc, swapChain);
- }
-+#endif
-
- void NativeWindow::commitChange()
- {
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0012-ANGLE-Fix-initialization-of-zero-sized-window.patch b/src/angle/patches/0005-ANGLE-Fix-initialization-of-zero-sized-window.patch
index fe65af7948..eb67278628 100644
--- a/src/angle/patches/0012-ANGLE-Fix-initialization-of-zero-sized-window.patch
+++ b/src/angle/patches/0005-ANGLE-Fix-initialization-of-zero-sized-window.patch
@@ -1,7 +1,7 @@
-From 79d2bac44cb2a0793c00886f0499422ab6ffa09c Mon Sep 17 00:00:00 2001
-From: Maurice Kalinowski <maurice.kalinowski@qt.io>
-Date: Fri, 12 Aug 2016 08:11:16 +0200
-Subject: [PATCH] ANGLE: Fix initialization of zero-sized window
+From 8e649097b0e11d8b975ba321f343142dd97889cb Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 13:12:07 +0200
+Subject: [PATCH 5/8] ANGLE: Fix initialization of zero-sized window
The clientRect might be empty when creating a window of zero size. The
side effect of a division by zero is that matrix transformation fails
@@ -13,20 +13,20 @@ Change-Id: Idbaed72deadb7b87052ac27e194a40d1810e6f7a
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
-index d3ed35b..548b460 100644
+index c6d07fc888..3425fad95d 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
-@@ -322,8 +322,8 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
+@@ -324,8 +324,8 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
HRESULT SwapChainPanelNativeWindow::scaleSwapChain(const Size &windowSize, const RECT &clientRect)
{
-- Size renderScale = {windowSize.Width / clientRect.right,
-- windowSize.Height / clientRect.bottom};
+- Size renderScale = {windowSize.Width / (float)clientRect.right,
+- windowSize.Height / (float)clientRect.bottom};
+ Size renderScale = {windowSize.Width / std::max(LONG(1), clientRect.right),
+ windowSize.Height / std::max(LONG(1), clientRect.bottom)};
// Setup a scale matrix for the swap chain
DXGI_MATRIX_3X2_F scaleMatrix = {};
scaleMatrix._11 = renderScale.Width;
--
-2.9.2.windows.1
+2.15.0.windows.1
diff --git a/src/angle/patches/0014-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch b/src/angle/patches/0006-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch
index e389219976..f515b0a072 100644
--- a/src/angle/patches/0014-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch
+++ b/src/angle/patches/0006-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch
@@ -1,7 +1,7 @@
-From 0a6fe2a93f451997d01e5e326846e0911d22622b Mon Sep 17 00:00:00 2001
+From 0fc1b9c7e87ab6cdb6bf7c81a1eee0a1d1f74e92 Mon Sep 17 00:00:00 2001
From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Wed, 31 May 2017 15:50:28 +0200
-Subject: [PATCH] ANGLE: Fix flickering on resize when D3D9 is used
+Date: Wed, 22 Aug 2018 13:24:43 +0200
+Subject: [PATCH 6/8] ANGLE: Fix flickering on resize when D3D9 is used
By reverting ANGLE change d3b84ab51db09de238459b0dff2e8420c09aabf3
we get rid of the flickering that happens on resize when D3D9 is
@@ -11,61 +11,67 @@ context so it is safe to revert the change.
Task-number: QTBUG-59893
Change-Id: I9306314b892612fbd1f7a058a2e606aedc0367bb
---
- .../angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 87 ++++++++++++++++++++++
+ .../angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 89 ++++++++++++++++++++++
.../angle/src/libANGLE/renderer/d3d/SurfaceD3D.h | 4 +
- 2 files changed, 91 insertions(+)
+ 2 files changed, 93 insertions(+)
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-index 3d27548..f567f47 100644
+index ceb022d14c..8d3f44f2ad 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-@@ -61,16 +61,19 @@ SurfaceD3D::SurfaceD3D(RendererD3D *renderer,
- mDepthStencilFormat(config->depthStencilFormat),
+@@ -38,6 +38,7 @@ SurfaceD3D::SurfaceD3D(const egl::SurfaceState &state,
+ mDepthStencilFormat(state.config->depthStencilFormat),
mSwapChain(nullptr),
mSwapIntervalDirty(true),
+ mWindowSubclassed(false),
- mNativeWindow(window, config, directComposition == EGL_TRUE),
- mWidth(width),
- mHeight(height),
- mSwapInterval(1),
- mShareHandle(reinterpret_cast<HANDLE *>(shareHandle))
+ mNativeWindow(renderer->createNativeWindow(window, state.config, attribs)),
+ mWidth(static_cast<EGLint>(attribs.get(EGL_WIDTH, 0))),
+ mHeight(static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0))),
+@@ -45,6 +46,7 @@ SurfaceD3D::SurfaceD3D(const egl::SurfaceState &state,
+ mShareHandle(0),
+ mD3DTexture(nullptr)
{
+ subclassWindow();
- }
+ if (window != nullptr && !mFixedSize)
+ {
+ mWidth = -1;
+@@ -72,6 +74,7 @@ SurfaceD3D::SurfaceD3D(const egl::SurfaceState &state,
SurfaceD3D::~SurfaceD3D()
{
+ unsubclassWindow();
releaseSwapChain();
- }
-
-@@ -243,6 +246,90 @@ egl::Error SurfaceD3D::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
- return egl::Error(EGL_SUCCESS);
+ SafeDelete(mNativeWindow);
+ SafeRelease(mD3DTexture);
+@@ -256,6 +259,92 @@ egl::Error SurfaceD3D::swapRect(const gl::Context *context,
+ return egl::NoError();
}
+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
+#define kSurfaceProperty _TEXT("Egl::SurfaceOwner")
+#define kParentWndProc _TEXT("Egl::SurfaceParentWndProc")
++#define kDisplayProperty _TEXT("Egl::Display")
+
+static LRESULT CALLBACK SurfaceWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
-+ if (message == WM_SIZE)
-+ {
-+ SurfaceD3D* surf = reinterpret_cast<SurfaceD3D*>(GetProp(hwnd, kSurfaceProperty));
-+ if(surf)
-+ {
-+ surf->checkForOutOfDateSwapChain();
-+ }
-+ }
-+ WNDPROC prevWndFunc = reinterpret_cast<WNDPROC >(GetProp(hwnd, kParentWndProc));
-+ return CallWindowProc(prevWndFunc, hwnd, message, wparam, lparam);
++ if (message == WM_SIZE)
++ {
++ SurfaceD3D* surf = reinterpret_cast<SurfaceD3D*>(GetProp(hwnd, kSurfaceProperty));
++ if(surf)
++ {
++ egl::Display *display = reinterpret_cast<egl::Display *>(GetProp(hwnd, kDisplayProperty));
++ surf->checkForOutOfDateSwapChain(display->getProxyContext());
++ }
++ }
++ WNDPROC prevWndFunc = reinterpret_cast<WNDPROC >(GetProp(hwnd, kParentWndProc));
++ return CallWindowProc(prevWndFunc, hwnd, message, wparam, lparam);
+}
+#endif
+
+void SurfaceD3D::subclassWindow()
+{
+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ HWND window = mNativeWindow.getNativeWindow();
++ HWND window = mNativeWindow->getNativeWindow();
+ if (!window)
+ {
+ return;
@@ -88,6 +94,7 @@ index 3d27548..f567f47 100644
+
+ SetProp(window, kSurfaceProperty, reinterpret_cast<HANDLE>(this));
+ SetProp(window, kParentWndProc, reinterpret_cast<HANDLE>(oldWndProc));
++ SetProp(window, kDisplayProperty, reinterpret_cast<HANDLE>(mDisplay));
+ mWindowSubclassed = true;
+#endif
+}
@@ -100,7 +107,7 @@ index 3d27548..f567f47 100644
+ }
+
+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ HWND window = mNativeWindow.getNativeWindow();
++ HWND window = mNativeWindow->getNativeWindow();
+ if (!window)
+ {
+ return;
@@ -117,26 +124,27 @@ index 3d27548..f567f47 100644
+ if(parentWndFunc)
+ {
+ LONG_PTR prevWndFunc = SetWindowLongPtr(window, GWLP_WNDPROC, parentWndFunc);
-+ UNUSED_ASSERTION_VARIABLE(prevWndFunc);
+ ASSERT(prevWndFunc == reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
+ }
+
+ RemoveProp(window, kSurfaceProperty);
+ RemoveProp(window, kParentWndProc);
++ RemoveProp(window, kDisplayProperty);
+#endif
+ mWindowSubclassed = false;
+}
+
- bool SurfaceD3D::checkForOutOfDateSwapChain()
++
+ egl::Error SurfaceD3D::checkForOutOfDateSwapChain(const gl::Context *context)
{
RECT client;
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h
-index b925bfc..67d408d 100644
+index 4fd45a6dfd..01d2573244 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h
@@ -82,6 +82,9 @@ class SurfaceD3D : public SurfaceImpl
- egl::Error resetSwapChain(int backbufferWidth, int backbufferHeight);
- egl::Error resizeSwapChain(int backbufferWidth, int backbufferHeight);
+ int backbufferWidth,
+ int backbufferHeight);
+ void subclassWindow();
+ void unsubclassWindow();
@@ -148,10 +156,10 @@ index b925bfc..67d408d 100644
SwapChainD3D *mSwapChain;
bool mSwapIntervalDirty;
-+ bool mWindowSubclassed; // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking
++ bool mWindowSubclassed; // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking
- NativeWindow mNativeWindow; // Handler for the Window that the surface is created for.
+ NativeWindowD3D *mNativeWindow; // Handler for the Window that the surface is created for.
EGLint mWidth;
--
-2.10.2.windows.1
+2.15.0.windows.1
diff --git a/src/angle/patches/0007-ANGLE-D3D11-Suppress-keyboard-handling-of-DXGI.patch b/src/angle/patches/0007-ANGLE-D3D11-Suppress-keyboard-handling-of-DXGI.patch
deleted file mode 100644
index badd1d7201..0000000000
--- a/src/angle/patches/0007-ANGLE-D3D11-Suppress-keyboard-handling-of-DXGI.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 955357382b1bb02043ec744ef3b5929e29c4f8cc Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Tue, 12 Apr 2016 14:44:26 +0200
-Subject: [PATCH 7/7] ANGLE/D3D11: Suppress keyboard handling of DXGI.
-
-Set the DXGI_MWA_NO_ALT_ENTER to suppress the Alt-Enter shortcut
-causing the window to become full screen.
-
-Task-number: QTBUG-44904
-Change-Id: If24c32df69a5a47e29d14be8f2624abfac5cd634
----
- .../src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-index 7da7f31..da6460b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp
-@@ -171,6 +171,8 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
- HRESULT result = factory2->CreateSwapChainForHwnd(device, mWindow, &swapChainDesc, nullptr, nullptr, &swapChain1);
- if (SUCCEEDED(result))
- {
-+ const HRESULT makeWindowAssociationResult = factory->MakeWindowAssociation(mWindow, DXGI_MWA_NO_ALT_ENTER);
-+ UNUSED_VARIABLE(makeWindowAssociationResult);
- *swapChain = static_cast<DXGISwapChain*>(swapChain1);
- }
- SafeRelease(factory2);
-@@ -196,7 +198,13 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
- swapChainDesc.Windowed = TRUE;
- swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-
-- return factory->CreateSwapChain(device, &swapChainDesc, swapChain);;
-+ const HRESULT result = factory->CreateSwapChain(device, &swapChainDesc, swapChain);
-+ if (SUCCEEDED(result))
-+ {
-+ const HRESULT makeWindowAssociationResult = factory->MakeWindowAssociation(mWindow, DXGI_MWA_NO_ALT_ENTER);
-+ UNUSED_VARIABLE(makeWindowAssociationResult);
-+ }
-+ return result;
- }
- #endif
-
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0016-ANGLE-Fix-resizing-of-windows.patch b/src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch
index 7ba92052f2..2b4938be9b 100644
--- a/src/angle/patches/0016-ANGLE-Fix-resizing-of-windows.patch
+++ b/src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch
@@ -1,7 +1,7 @@
-From 55821d34b2208e7858dbba5648760b83c66b58a5 Mon Sep 17 00:00:00 2001
+From f1568e10c2bd46450adebbd838bd32e4833a0a5c Mon Sep 17 00:00:00 2001
From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Mon, 29 Aug 2016 09:48:28 +0200
-Subject: [PATCH] ANGLE: Fix resizing of windows
+Date: Wed, 22 Aug 2018 13:32:44 +0200
+Subject: [PATCH 7/8] ANGLE: Fix resizing of windows
Use the correct height/width values when calculating
the vector for resizing the window content and the
@@ -10,14 +10,14 @@ new size as viewport size.
Task-number: QTBUG-62475
Change-Id: I33a8dc1379a908e991b04bc31dfc6254a6d005c9
---
- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 35 +++++++++++-----------
- 1 file changed, 17 insertions(+), 18 deletions(-)
+ .../src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index 785a83cd77..fe72bc935d 100644
+index 05bb5d9863..dcfd06484d 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -707,15 +706,15 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
+@@ -796,16 +796,15 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(const gl::Context *context,
d3d11::PositionTexCoordVertex *vertices = static_cast<d3d11::PositionTexCoordVertex*>(mappedResource.pData);
// Create a quad in homogeneous coordinates
@@ -25,33 +25,24 @@ index 785a83cd77..fe72bc935d 100644
- float y1 = (y / float(mHeight)) * 2.0f - 1.0f;
- float x2 = ((x + width) / float(mWidth)) * 2.0f - 1.0f;
- float y2 = ((y + height) / float(mHeight)) * 2.0f - 1.0f;
-+ float x1 = (x / float(width)) * 2.0f - 1.0f;
-+ float y1 = (y / float(height)) * 2.0f - 1.0f;
-+ float x2 = ((x + width) / float(width)) * 2.0f - 1.0f;
-+ float y2 = ((y + height) / float(height)) * 2.0f - 1.0f;
-
+-
- float u1 = x / float(mWidth);
- float v1 = y / float(mHeight);
- float u2 = (x + width) / float(mWidth);
- float v2 = (y + height) / float(mHeight);
+-
++ float x1 = (x / float(width)) * 2.0f - 1.0f;
++ float y1 = (y / float(height)) * 2.0f - 1.0f;
++ float x2 = ((x + width) / float(width)) * 2.0f - 1.0f;
++ float y2 = ((y + height) / float(height)) * 2.0f - 1.0f;
++
+ float u1 = x / float(width);
+ float v1 = y / float(height);
+ float u2 = (x + width) / float(width);
+ float v2 = (y + height) / float(height);
-
// Invert the quad vertices depending on the surface orientation.
if ((mOrientation & EGL_SURFACE_ORIENTATION_INVERT_X_ANGLE) != 0)
-@@ -760,8 +759,8 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- D3D11_VIEWPORT viewport;
- viewport.TopLeftX = 0;
- viewport.TopLeftY = 0;
-- viewport.Width = static_cast<FLOAT>(mWidth);
-- viewport.Height = static_cast<FLOAT>(mHeight);
-+ viewport.Width = static_cast<FLOAT>(width);
-+ viewport.Height = static_cast<FLOAT>(height);
- viewport.MinDepth = 0.0f;
- viewport.MaxDepth = 1.0f;
- deviceContext->RSSetViewports(1, &viewport);
+ {
--
2.15.0.windows.1
diff --git a/src/angle/patches/0008-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch b/src/angle/patches/0008-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch
deleted file mode 100644
index 7f7517e554..0000000000
--- a/src/angle/patches/0008-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch
+++ /dev/null
@@ -1,401 +0,0 @@
-From 7a3851e74393eb254826face20b8e9af74bbdf0b Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@theqtcompany.com>
-Date: Thu, 17 Mar 2016 15:46:56 +0100
-Subject: [PATCH] ANGLE: Use pixel sizes in the XAML swap chain
-
-This is necessary for Qt applications, as they render to GL in physical
-pixels. This is consistent with the CoreWindow swap chain behavior.
-
-This includes a partial revert of "ANGLE: Improve Windows Phone Support"
-as the modifications to SwapChain11 are incompatible with the XAML swap
-chain.
-
-This change only affects Windows Runtime targets.
-
-Change-Id: I401ae81028a9dfdb9da37f51c60844467c476f76
----
- .../libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 46 ----------------------
- .../d3d/d3d11/winrt/CoreWindowNativeWindow.cpp | 25 +-----------
- .../d3d/d3d11/winrt/CoreWindowNativeWindow.h | 7 +---
- .../d3d/d3d11/winrt/InspectableNativeWindow.cpp | 20 ++++++++++
- .../d3d/d3d11/winrt/InspectableNativeWindow.h | 9 +++--
- .../d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp | 43 ++++++++++++--------
- .../d3d/d3d11/winrt/SwapChainPanelNativeWindow.h | 7 ++--
- 7 files changed, 58 insertions(+), 99 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-index f80f24b..785a83c 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -226,14 +226,8 @@ EGLint SwapChain11::resetOffscreenColorBuffer(int backbufferWidth, int backbuffe
- const bool useSharedResource = !mNativeWindow.getNativeWindow() && mRenderer->getShareHandleSupport();
-
- D3D11_TEXTURE2D_DESC offscreenTextureDesc = {0};
--#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-- const int textureLength = std::max(backbufferWidth, backbufferHeight);
-- offscreenTextureDesc.Width = textureLength;
-- offscreenTextureDesc.Height = textureLength;
--#else
- offscreenTextureDesc.Width = backbufferWidth;
- offscreenTextureDesc.Height = backbufferHeight;
--#endif
- offscreenTextureDesc.Format = backbufferFormatInfo.texFormat;
- offscreenTextureDesc.MipLevels = 1;
- offscreenTextureDesc.ArraySize = 1;
-@@ -346,14 +340,8 @@ EGLint SwapChain11::resetOffscreenDepthBuffer(int backbufferWidth, int backbuffe
- d3d11::GetTextureFormatInfo(mDepthBufferFormat, mRenderer->getRenderer11DeviceCaps());
-
- D3D11_TEXTURE2D_DESC depthStencilTextureDesc;
--#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-- const int textureLength = std::max(backbufferWidth, backbufferHeight);
-- depthStencilTextureDesc.Width = textureLength;
-- depthStencilTextureDesc.Height = textureLength;
--#else
- depthStencilTextureDesc.Width = backbufferWidth;
- depthStencilTextureDesc.Height = backbufferHeight;
--#endif
- depthStencilTextureDesc.Format = depthBufferFormatInfo.texFormat;
- depthStencilTextureDesc.MipLevels = 1;
- depthStencilTextureDesc.ArraySize = 1;
-@@ -438,7 +426,6 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight)
- return EGL_SUCCESS;
- }
-
--#if !defined(ANGLE_ENABLE_WINDOWS_STORE) || (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP)
- // Can only call resize if we have already created our swap buffer and resources
- ASSERT(mSwapChain && mBackBufferTexture && mBackBufferRTView && mBackBufferSRView);
-
-@@ -496,12 +483,6 @@ EGLint SwapChain11::resize(EGLint backbufferWidth, EGLint backbufferHeight)
- mFirstSwap = true;
-
- return resetOffscreenBuffers(backbufferWidth, backbufferHeight);
--#else
-- // Do nothing on Windows Phone apart from updating the internal buffer/width height
-- mWidth = backbufferWidth;
-- mHeight = backbufferHeight;
-- return EGL_SUCCESS;
--#endif
- }
-
- DXGI_FORMAT SwapChain11::getSwapChainNativeFormat() const
-@@ -725,27 +706,6 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
-
- d3d11::PositionTexCoordVertex *vertices = static_cast<d3d11::PositionTexCoordVertex*>(mappedResource.pData);
-
--#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-- // Create a quad in homogeneous coordinates
-- float x1 = -1.0f;
-- float y1 = -1.0f;
-- float x2 = 1.0f;
-- float y2 = 1.0f;
--
-- const float dim = std::max(mWidth, mHeight);
-- float u1 = 0;
-- float v1 = 0;
-- float u2 = float(width) / dim;
-- float v2 = float(height) / dim;
--
-- const NativeWindow::RotationFlags flags = mNativeWindow.rotationFlags();
-- const bool rotateL = flags == NativeWindow::RotateLeft;
-- const bool rotateR = flags == NativeWindow::RotateRight;
-- d3d11::SetPositionTexCoordVertex(&vertices[0], x1, y1, rotateL ? u2 : u1, rotateR ? v2 : v1);
-- d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, rotateR ? u2 : u1, rotateL ? v1 : v2);
-- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, rotateR ? u1 : u2, rotateL ? v2 : v1);
-- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, rotateL ? u1 : u2, rotateR ? v1 : v2);
--#else
- // Create a quad in homogeneous coordinates
- float x1 = (x / float(mWidth)) * 2.0f - 1.0f;
- float y1 = (y / float(mHeight)) * 2.0f - 1.0f;
-@@ -771,7 +731,6 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- d3d11::SetPositionTexCoordVertex(&vertices[1], x1, y2, u1, v2);
- d3d11::SetPositionTexCoordVertex(&vertices[2], x2, y1, u2, v1);
- d3d11::SetPositionTexCoordVertex(&vertices[3], x2, y2, u2, v2);
--#endif
-
- deviceContext->Unmap(mQuadVB, 0);
-
-@@ -801,13 +760,8 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(EGLint x, EGLint y, EGLint width,
- D3D11_VIEWPORT viewport;
- viewport.TopLeftX = 0;
- viewport.TopLeftY = 0;
--#if defined(ANGLE_ENABLE_WINDOWS_STORE) && (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
-- viewport.Width = (rotateL || rotateR) ? height : width;
-- viewport.Height = (rotateL || rotateR) ? width : height;
--#else
- viewport.Width = static_cast<FLOAT>(mWidth);
- viewport.Height = static_cast<FLOAT>(mHeight);
--#endif
- viewport.MinDepth = 0.0f;
- viewport.MaxDepth = 1.0f;
- deviceContext->RSSetViewports(1, &viewport);
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-index b074e8c..f401db6 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp
-@@ -222,7 +222,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device,
- return result;
- }
-
--inline HRESULT CoreWindowNativeWindow::scaleSwapChain(const SIZE &windowSize, const RECT &clientRect)
-+inline HRESULT CoreWindowNativeWindow::scaleSwapChain(const Size &windowSize, const RECT &clientRect)
- {
- // We don't need to do any additional work to scale CoreWindow swapchains.
- // Using DXGI_SCALING_STRETCH to create the swapchain above does all the necessary work.
-@@ -240,27 +240,4 @@ HRESULT GetCoreWindowSizeInPixels(const ComPtr<ABI::Windows::UI::Core::ICoreWind
-
- return result;
- }
--
--static float GetLogicalDpi()
--{
-- ComPtr<ABI::Windows::Graphics::Display::IDisplayPropertiesStatics> displayProperties;
--
-- if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf())))
-- {
-- float dpi = 96.0f;
-- if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi)))
-- {
-- return dpi;
-- }
-- }
--
-- // Return 96 dpi as a default if display properties cannot be obtained.
-- return 96.0f;
--}
--
--long ConvertDipsToPixels(float dips)
--{
-- static const float dipsPerInch = 96.0f;
-- return lround((dips * GetLogicalDpi() / dipsPerInch));
--}
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-index 4de235a..fc1cd12 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h
-@@ -19,8 +19,6 @@ typedef ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CGraphics__CD
-
- namespace rx
- {
--long ConvertDipsToPixels(float dips);
--
- class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enable_shared_from_this<CoreWindowNativeWindow>
- {
- public:
-@@ -36,7 +34,7 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, public std::enabl
- DXGISwapChain **swapChain) override;
-
- protected:
-- HRESULT scaleSwapChain(const SIZE &windowSize, const RECT &clientRect) override;
-+ HRESULT scaleSwapChain(const Size &windowSize, const RECT &clientRect) override;
-
- bool registerForSizeChangeEvents();
- void unregisterForSizeChangeEvents();
-@@ -74,8 +72,7 @@ class CoreWindowSizeChangedHandler :
- ABI::Windows::Foundation::Size windowSize;
- if (SUCCEEDED(sizeChangedEventArgs->get_Size(&windowSize)))
- {
-- SIZE windowSizeInPixels = { ConvertDipsToPixels(windowSize.Width), ConvertDipsToPixels(windowSize.Height) };
-- host->setNewClientSize(windowSizeInPixels);
-+ host->setNewClientSize(windowSize);
- }
- }
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-index c9b203e..aacfadd 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp
-@@ -381,4 +381,24 @@ HRESULT GetOptionalSinglePropertyValue(const ComPtr<ABI::Windows::Foundation::Co
- return result;
- }
-
-+static float GetLogicalDpi()
-+{
-+ ComPtr<ABI::Windows::Graphics::Display::IDisplayPropertiesStatics> displayProperties;
-+ float dpi = 96.0f;
-+
-+ if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf())))
-+ {
-+ if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi)))
-+ {
-+ return dpi;
-+ }
-+ }
-+ return dpi;
-+}
-+
-+long ConvertDipsToPixels(float dips)
-+{
-+ static const float dipsPerInch = 96.0f;
-+ return lround((dips * GetLogicalDpi() / dipsPerInch));
-+}
- }
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-index 70e5fe7..cdbf40e 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h
-@@ -26,6 +26,8 @@ using namespace ABI::Windows::Foundation::Collections;
-
- namespace rx
- {
-+long ConvertDipsToPixels(float dips);
-+
- class InspectableNativeWindow
- {
- public:
-@@ -65,7 +67,7 @@ class InspectableNativeWindow
- }
-
- // setNewClientSize is used by the WinRT size change handler. It isn't used by the rest of ANGLE.
-- void setNewClientSize(const SIZE &newWindowSize)
-+ void setNewClientSize(const Size &newWindowSize)
- {
- // If the client doesn't support swapchain resizing then we should have already unregistered from size change handler
- ASSERT(mSupportsSwapChainResize);
-@@ -76,7 +78,8 @@ class InspectableNativeWindow
- if (!mSwapChainSizeSpecified)
- {
- // We don't have to check if a swapchain scale was specified here; the default value is 1.0f which will have no effect.
-- mNewClientRect = { 0, 0, static_cast<long>(newWindowSize.cx * mSwapChainScale), static_cast<long>(newWindowSize.cy * mSwapChainScale) };
-+ mNewClientRect = { 0, 0, ConvertDipsToPixels(newSize.Width), ConvertDipsToPixels(newSize.Height) };
- mClientRectChanged = true;
-
- // If a scale was specified, then now is the time to apply the scale matrix for the new swapchain size and window size
-@@ -106,7 +109,7 @@ class InspectableNativeWindow
- }
-
- protected:
-- virtual HRESULT scaleSwapChain(const SIZE &windowSize, const RECT &clientRect) = 0;
-+ virtual HRESULT scaleSwapChain(const Size &windowSize, const RECT &clientRect) = 0;
-
- bool mSupportsSwapChainResize; // Support for IDXGISwapChain::ResizeBuffers method
- bool mSwapChainSizeSpecified; // If an EGLRenderSurfaceSizeProperty was specified
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
-index 1ed3645..d3ed35b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
-@@ -171,12 +171,15 @@ bool SwapChainPanelNativeWindow::initialize(EGLNativeWindowType window, IPropert
- {
- SIZE swapChainPanelSize;
- result = GetSwapChainPanelSize(mSwapChainPanel, mSwapChainPanelDispatcher,
-- &swapChainPanelSize);
-+ &swapChainPanelSize, &mSwapChainScale);
-+ if (mSwapChainScale != 1.0f)
-+ mSwapChainScaleSpecified = true;
-
- if (SUCCEEDED(result))
- {
- // Update the client rect to account for any swapchain scale factor
-- mClientRect = { 0, 0, static_cast<long>(swapChainPanelSize.cx * mSwapChainScale), static_cast<long>(swapChainPanelSize.cy * mSwapChainScale) };
-+ mClientRect = { 0, 0, static_cast<long>(ConvertDipsToPixels(swapChainPanelSize.cx * mSwapChainScale)),
-+ static_cast<long>(ConvertDipsToPixels(swapChainPanelSize.cy * mSwapChainScale)) };
- }
- }
- }
-@@ -269,7 +272,6 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
-
- ComPtr<IDXGISwapChain1> newSwapChain;
- ComPtr<ISwapChainPanelNative> swapChainPanelNative;
-- SIZE currentPanelSize = {};
-
- HRESULT result = factory->CreateSwapChainForComposition(device, &swapChainDesc, nullptr, newSwapChain.ReleaseAndGetAddressOf());
-
-@@ -304,24 +306,24 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
- {
- if (mSwapChainSizeSpecified || mSwapChainScaleSpecified)
- {
-- result = GetSwapChainPanelSize(mSwapChainPanel, mSwapChainPanelDispatcher,
-- &currentPanelSize);
--
-- // Scale the swapchain to fit inside the contents of the panel.
-- if (SUCCEEDED(result))
-- {
-- result = scaleSwapChain(currentPanelSize, mClientRect);
-- }
-+ ComPtr<ABI::Windows::UI::Xaml::IUIElement> uiElement;
-+ result = mSwapChainPanel.As(&uiElement);
-+ ASSERT(SUCCEEDED(result));
-+
-+ Size currentSize;
-+ result = uiElement->get_RenderSize(&currentSize);
-+ ASSERT(SUCCEEDED(result));
-+ result = scaleSwapChain(currentSize, mClientRect);
- }
- }
-
- return result;
- }
-
--HRESULT SwapChainPanelNativeWindow::scaleSwapChain(const SIZE &windowSize, const RECT &clientRect)
-+HRESULT SwapChainPanelNativeWindow::scaleSwapChain(const Size &windowSize, const RECT &clientRect)
- {
-- Size renderScale = {(float)windowSize.cx / (float)clientRect.right,
-- (float)windowSize.cy / (float)clientRect.bottom};
-+ Size renderScale = {windowSize.Width / clientRect.right,
-+ windowSize.Height / clientRect.bottom};
- // Setup a scale matrix for the swap chain
- DXGI_MATRIX_3X2_F scaleMatrix = {};
- scaleMatrix._11 = renderScale.Width;
-@@ -340,7 +342,7 @@ HRESULT SwapChainPanelNativeWindow::scaleSwapChain(const SIZE &windowSize, const
- HRESULT GetSwapChainPanelSize(
- const ComPtr<ABI::Windows::UI::Xaml::Controls::ISwapChainPanel> &swapChainPanel,
- const ComPtr<ICoreDispatcher> &dispatcher,
-- SIZE *windowSize)
-+ SIZE *windowSize, float *scaleFactor)
- {
- ComPtr<IUIElement> uiElement;
- Size renderSize = {0, 0};
-@@ -357,9 +359,16 @@ HRESULT GetSwapChainPanelSize(
-
- if (SUCCEEDED(result))
- {
-- *windowSize = { lround(renderSize.Width), lround(renderSize.Height) };
-+ long width = ConvertDipsToPixels(renderSize.Width);
-+ long height = ConvertDipsToPixels(renderSize.Height);
-+ *windowSize = { width, height };
-+
-+ if (scaleFactor)
-+ {
-+ *scaleFactor = renderSize.Width / width;
-+ }
- }
-
- return result;
- }
--}
-\ No newline at end of file
-+}
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
-index 9cc051d..09d87ad 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
-@@ -28,7 +28,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, public std::e
- DXGISwapChain **swapChain) override;
-
- protected:
-- HRESULT scaleSwapChain(const SIZE &windowSize, const RECT &clientRect) override;
-+ HRESULT scaleSwapChain(const Size &windowSize, const RECT &clientRect) override;
-
- bool registerForSizeChangeEvents();
- void unregisterForSizeChangeEvents();
-@@ -72,8 +72,7 @@ class SwapChainPanelSizeChangedHandler :
- HRESULT result = sizeChangedEventArgs->get_NewSize(&newSize);
- if (SUCCEEDED(result))
- {
-- SIZE windowSize = { lround(newSize.Width), lround(newSize.Height) };
-- host->setNewClientSize(windowSize);
-+ host->setNewClientSize(newSize);
- }
- }
-
-@@ -87,6 +86,6 @@ class SwapChainPanelSizeChangedHandler :
- HRESULT GetSwapChainPanelSize(
- const ComPtr<ABI::Windows::UI::Xaml::Controls::ISwapChainPanel> &swapChainPanel,
- const ComPtr<ABI::Windows::UI::Core::ICoreDispatcher> &dispatcher,
-- SIZE *windowSize);
-+ SIZE *windowSize, float *scaleFactor);
- }
- #endif // LIBANGLE_RENDERER_D3D_D3D11_WINRT_SWAPCHAINPANELNATIVEWINDOW_H_
---
-2.7.0.windows.1
-
diff --git a/src/angle/patches/0008-ANGLE-winrt-Do-full-screen-update-if-the-the-window-.patch b/src/angle/patches/0008-ANGLE-winrt-Do-full-screen-update-if-the-the-window-.patch
new file mode 100644
index 0000000000..d9b51fc411
--- /dev/null
+++ b/src/angle/patches/0008-ANGLE-winrt-Do-full-screen-update-if-the-the-window-.patch
@@ -0,0 +1,40 @@
+From 5a58c6c7d97f003aa4a34ae130697dc81cc8fdf8 Mon Sep 17 00:00:00 2001
+From: Oliver Wolff <oliver.wolff@qt.io>
+Date: Wed, 22 Aug 2018 15:17:52 +0200
+Subject: [PATCH 8/8] ANGLE: winrt: Do full screen update if the the window
+ size is reduced
+
+We cannot do partial updates if the window size is reduced as this will
+result in a "pDstBox is not a valid box for the destination subresource."
+error.
+
+Change-Id: I9a8d91bca961f52e1aab1bec5321922cfc842fb3
+---
+ .../src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
+index 8f76d16c30..b702450ded 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
+@@ -664,9 +664,14 @@ gl::Error TextureStorage11::setData(const gl::Context *context,
+ // with compressed formats in the calling logic.
+ ASSERT(!internalFormatInfo.compressed);
+
+- const int width = destBox ? destBox->width : static_cast<int>(image->getWidth());
+- const int height = destBox ? destBox->height : static_cast<int>(image->getHeight());
+- const int depth = destBox ? destBox->depth : static_cast<int>(image->getDepth());
++ const int imageWidth = static_cast<int>(image->getWidth());
++ const int width = destBox ? destBox->width : imageWidth;
++ const int imageHeight = static_cast<int>(image->getHeight());
++ const int height = destBox ? destBox->height : imageHeight;
++ const int imageDepth = static_cast<int>(image->getDepth());
++ const int depth = destBox ? destBox->depth : imageDepth;
++ if (imageWidth < width || imageHeight < height || imageDepth < depth)
++ fullUpdate = true;
+ GLuint srcRowPitch = 0;
+ ANGLE_TRY_RESULT(
+ internalFormatInfo.computeRowPitch(type, width, unpack.alignment, unpack.rowLength),
+--
+2.15.0.windows.1
+
diff --git a/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch b/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch
deleted file mode 100644
index b53e11038b..0000000000
--- a/src/angle/patches/0009-ANGLE-glGetUniform-v-functions-to-work-properly.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 2d4a7aec7957e507cbf0b4b8dcf68abb26667e33 Mon Sep 17 00:00:00 2001
-From: Miikka Heikkinen <miikka.heikkinen@qt.io>
-Date: Mon, 9 May 2016 13:13:20 +0300
-Subject: [PATCH] Fix ANGLE glGetUniform*v functions to work properly array
- uniforms
-
-glGetUniform*v functions are supposed to return just a single
-array element, so returning the whole array is always incorrect.
-
-Task-number: QTBUG-53072
-Change-Id: I22f05d420082d4d9de06d975b3d0f5e64d3e0c41
----
- src/3rdparty/angle/src/libANGLE/Program.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/Program.cpp b/src/3rdparty/angle/src/libANGLE/Program.cpp
-index 748ceae..69497c4 100644
---- a/src/3rdparty/angle/src/libANGLE/Program.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/Program.cpp
-@@ -2510,7 +2510,7 @@ void Program::getUniformInternal(GLint location, DestT *dataOut) const
- return;
- }
-
-- int components = VariableComponentCount(uniform.type) * uniform.elementCount();
-+ int components = VariableComponentCount(uniform.type);
-
- switch (componentType)
- {
---
-2.6.3.windows.1
-
diff --git a/src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch b/src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch
new file mode 100644
index 0000000000..f57f528ad8
--- /dev/null
+++ b/src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch
@@ -0,0 +1,67 @@
+From 2fb4d8087c4f324b7a3f2e21554374de7060e996 Mon Sep 17 00:00:00 2001
+From: Andre de la Rocha <andre.rocha@qt.io>
+Date: Tue, 11 Sep 2018 12:52:28 +0200
+Subject: [PATCH] Revert "Fix scanForWantedComponents not ignoring
+ attribute values of 0."
+
+This patch reverts commit 2648d9297f25a0d1fa2837f020975a45d4e8a8b9 as a
+workaround for the "banding" artifacts we were seeing in Qt. Angle
+returns a list of supported graphic formats or configurations, sorting
+it in a way that the first one should be the one that fits better the
+requested format. In Qt we use the first thing we receive in the list.
+In the current Angle version, however, a fix has changed the way in
+which the list is sorted. In the old version the first element would be
+a 32-bit graphic format, while now it's a 16-bit one, resulting in the
+"banding" artifacts. The workaround reverts back to the previous sorting
+behavior.
+---
+ .../libANGLE/Config.cpp | 29 +++++++++++++++++------------
+ 1 file changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/src/3rdparty/angle/src/libANGLE/Config.cpp b/src/3rdparty/angle/src/libANGLE/Config.cpp
+index ccf64c8f8..4f14e73ef 100644
+--- a/src/3rdparty/angle/src/libANGLE/Config.cpp
++++ b/src/3rdparty/angle/src/libANGLE/Config.cpp
+@@ -181,22 +181,27 @@ class ConfigSorter
+ }
+
+ private:
+- static bool wantsComponent(const AttributeMap &attributeMap, EGLAttrib component)
++ void scanForWantedComponents(const AttributeMap &attributeMap)
+ {
+ // [EGL 1.5] section 3.4.1.2 page 30
+ // Sorting rule #3: by larger total number of color bits, not considering
+ // components that are 0 or don't-care.
+- EGLAttrib value = attributeMap.get(component, 0);
+- return value != 0 && value != EGL_DONT_CARE;
+- }
+-
+- void scanForWantedComponents(const AttributeMap &attributeMap)
+- {
+- mWantRed = wantsComponent(attributeMap, EGL_RED_SIZE);
+- mWantGreen = wantsComponent(attributeMap, EGL_GREEN_SIZE);
+- mWantBlue = wantsComponent(attributeMap, EGL_BLUE_SIZE);
+- mWantAlpha = wantsComponent(attributeMap, EGL_ALPHA_SIZE);
+- mWantLuminance = wantsComponent(attributeMap, EGL_LUMINANCE_SIZE);
++ for (auto attribIter = attributeMap.begin(); attribIter != attributeMap.end(); attribIter++)
++ {
++ EGLAttrib attributeKey = attribIter->first;
++ EGLAttrib attributeValue = attribIter->second;
++ if (attributeKey != 0 && attributeValue != EGL_DONT_CARE)
++ {
++ switch (attributeKey)
++ {
++ case EGL_RED_SIZE: mWantRed = true; break;
++ case EGL_GREEN_SIZE: mWantGreen = true; break;
++ case EGL_BLUE_SIZE: mWantBlue = true; break;
++ case EGL_ALPHA_SIZE: mWantAlpha = true; break;
++ case EGL_LUMINANCE_SIZE: mWantLuminance = true; break;
++ }
++ }
++ }
+ }
+
+ EGLint wantedComponentsSize(const Config &config) const
+--
+2.14.1.windows.1
+
diff --git a/src/angle/patches/0010-ANGLE-Disable-multisampling-to-avoid-crash-in-Qt-app.patch b/src/angle/patches/0010-ANGLE-Disable-multisampling-to-avoid-crash-in-Qt-app.patch
new file mode 100644
index 0000000000..2fb65ce220
--- /dev/null
+++ b/src/angle/patches/0010-ANGLE-Disable-multisampling-to-avoid-crash-in-Qt-app.patch
@@ -0,0 +1,41 @@
+From d239cceef88fbbe4cf7479025f12934d9c3c83a5 Mon Sep 17 00:00:00 2001
+From: Andre de la Rocha <andre.rocha@qt.io>
+Date: Tue, 11 Sep 2018 12:57:23 +0200
+Subject: [PATCH] ANGLE: Disable multisampling to avoid crash in Qt
+ applications
+
+This patch adds a workaround for the crash that occurs with multisampling
+enabled in some Qt applications (e.g., the 2dpainting example). The old
+Angle release we were using lacked support for multisampling, so it was
+ignored when requested. This current version seems to support it, but is
+causing a crash in the D3D11 shaders, so this workaround disables that
+support.
+---
+ .../libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 4 ++++
+ 1 file changed, 4 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 bd14f4de2..f487538a5 100644
+--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
++++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
+@@ -997,6 +997,8 @@ gl::SupportedSampleSet Renderer11::generateSampleSetForEGLConfig(
+ {
+ gl::SupportedSampleSet sampleCounts;
+
++#if 0 // Qt: Disabling support for multisampling as it is causing a crash in the D3D11 shaders.
++
+ // Generate a new set from the set intersection of sample counts between the color and depth
+ // format caps.
+ std::set_intersection(colorBufferFormatCaps.sampleCounts.begin(),
+@@ -1017,6 +1019,8 @@ gl::SupportedSampleSet Renderer11::generateSampleSetForEGLConfig(
+ sampleCounts = depthStencilBufferFormatCaps.sampleCounts;
+ }
+
++#endif
++
+ // Always support 0 samples
+ sampleCounts.insert(0);
+
+--
+2.14.1.windows.1
+
diff --git a/src/angle/patches/0010-ANGLE-fixed-usage-of-shared-handles-for-WinRT-WinPho.patch b/src/angle/patches/0010-ANGLE-fixed-usage-of-shared-handles-for-WinRT-WinPho.patch
deleted file mode 100644
index 8f17018e6e..0000000000
--- a/src/angle/patches/0010-ANGLE-fixed-usage-of-shared-handles-for-WinRT-WinPho.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-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
-
diff --git a/src/angle/patches/0011-ANGLE-Disable-support-for-shared-handles-in-warp-mod.patch b/src/angle/patches/0011-ANGLE-Disable-support-for-shared-handles-in-warp-mod.patch
deleted file mode 100644
index 1c4ee1d513..0000000000
--- a/src/angle/patches/0011-ANGLE-Disable-support-for-shared-handles-in-warp-mod.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-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
-
diff --git a/src/angle/patches/0013-ANGLE-Fix-crash-with-ltcg-on-Visual-Studio-2015-Upda.patch b/src/angle/patches/0013-ANGLE-Fix-crash-with-ltcg-on-Visual-Studio-2015-Upda.patch
deleted file mode 100644
index ee847d3d9a..0000000000
--- a/src/angle/patches/0013-ANGLE-Fix-crash-with-ltcg-on-Visual-Studio-2015-Upda.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From c30bdc7d961ff09d74117e038c1bb9f06ad49738 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Wed, 7 Jun 2017 10:07:43 +0200
-Subject: [PATCH] ANGLE: Fix crash with ltcg on Visual Studio 2015 Update 3
-
-Release builds of applications that used Qt configured with "link time
-code generation" crashed (memory access violation), when calling
-GetInternalFormatInfo in Context::initCaps.
-
-It looks like this is a compiler problem that can be avoided by not
-using a reference for the return value.
-
-Task-number: QTBUG-55718
-Change-Id: Ic1fb95d7b518a49859f41c819e860864387a8d3c
----
- src/3rdparty/angle/src/libANGLE/formatutils.cpp | 2 +-
- src/3rdparty/angle/src/libANGLE/formatutils.h | 2 +-
- src/3rdparty/angle/src/libANGLE/validationES3.cpp | 18 +++++++++---------
- 3 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/formatutils.cpp b/src/3rdparty/angle/src/libANGLE/formatutils.cpp
-index 3a4df12..f8b9a8b 100644
---- a/src/3rdparty/angle/src/libANGLE/formatutils.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/formatutils.cpp
-@@ -652,7 +652,7 @@ const Type &GetTypeInfo(GLenum type)
- }
- }
-
--const InternalFormat &GetInternalFormatInfo(GLenum internalFormat)
-+const InternalFormat GetInternalFormatInfo(GLenum internalFormat)
- {
- const InternalFormatInfoMap &formatMap = GetInternalFormatMap();
- InternalFormatInfoMap::const_iterator iter = formatMap.find(internalFormat);
-diff --git a/src/3rdparty/angle/src/libANGLE/formatutils.h b/src/3rdparty/angle/src/libANGLE/formatutils.h
-index 6863e4d..2165e6b 100644
---- a/src/3rdparty/angle/src/libANGLE/formatutils.h
-+++ b/src/3rdparty/angle/src/libANGLE/formatutils.h
-@@ -79,7 +79,7 @@ struct InternalFormat
- GLint skipRows,
- GLint skipPixels) const;
- };
--const InternalFormat &GetInternalFormatInfo(GLenum internalFormat);
-+const InternalFormat GetInternalFormatInfo(GLenum internalFormat);
-
- GLenum GetSizedInternalFormat(GLenum internalFormat, GLenum type);
-
-diff --git a/src/3rdparty/angle/src/libANGLE/validationES3.cpp b/src/3rdparty/angle/src/libANGLE/validationES3.cpp
-index e08e5d2..2db64ec 100644
---- a/src/3rdparty/angle/src/libANGLE/validationES3.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/validationES3.cpp
-@@ -775,20 +775,20 @@ static bool IsValidES3CopyTexImageCombination(GLenum textureInternalFormat, GLen
- // with the values of the source buffer's [channel sizes]. Table 3.17 is used if the
- // FRAMEBUFFER_ATTACHMENT_ENCODING is LINEAR and table 3.18 is used if the FRAMEBUFFER_ATTACHMENT_ENCODING
- // is SRGB.
-- const InternalFormat *sourceEffectiveFormat = NULL;
-+ InternalFormat sourceEffectiveFormat;
- if (readBufferHandle != 0)
- {
- // Not the default framebuffer, therefore the read buffer must be a user-created texture or renderbuffer
- if (framebufferInternalFormatInfo.pixelBytes > 0)
- {
-- sourceEffectiveFormat = &framebufferInternalFormatInfo;
-+ sourceEffectiveFormat = framebufferInternalFormatInfo;
- }
- else
- {
- // Renderbuffers cannot be created with an unsized internal format, so this must be an unsized-format
- // texture. We can use the same table we use when creating textures to get its effective sized format.
- GLenum sizedInternalFormat = GetSizedInternalFormat(framebufferInternalFormatInfo.format, framebufferInternalFormatInfo.type);
-- sourceEffectiveFormat = &GetInternalFormatInfo(sizedInternalFormat);
-+ sourceEffectiveFormat = GetInternalFormatInfo(sizedInternalFormat);
- }
- }
- else
-@@ -800,7 +800,7 @@ static bool IsValidES3CopyTexImageCombination(GLenum textureInternalFormat, GLen
- GLenum effectiveFormat;
- if (GetEffectiveInternalFormat(framebufferInternalFormatInfo, textureInternalFormatInfo, &effectiveFormat))
- {
-- sourceEffectiveFormat = &GetInternalFormatInfo(effectiveFormat);
-+ sourceEffectiveFormat = GetInternalFormatInfo(effectiveFormat);
- }
- else
- {
-@@ -816,7 +816,7 @@ static bool IsValidES3CopyTexImageCombination(GLenum textureInternalFormat, GLen
- (framebufferInternalFormatInfo.blueBits >= 1 && framebufferInternalFormatInfo.blueBits <= 8) &&
- (framebufferInternalFormatInfo.alphaBits >= 1 && framebufferInternalFormatInfo.alphaBits <= 8))
- {
-- sourceEffectiveFormat = &GetInternalFormatInfo(GL_SRGB8_ALPHA8);
-+ sourceEffectiveFormat = GetInternalFormatInfo(GL_SRGB8_ALPHA8);
- }
- else
- {
-@@ -834,10 +834,10 @@ static bool IsValidES3CopyTexImageCombination(GLenum textureInternalFormat, GLen
- {
- // Section 3.8.5 of the GLES 3.0.3 spec, pg 139, requires that, if the destination format is sized,
- // component sizes of the source and destination formats must exactly match
-- if (textureInternalFormatInfo.redBits != sourceEffectiveFormat->redBits ||
-- textureInternalFormatInfo.greenBits != sourceEffectiveFormat->greenBits ||
-- textureInternalFormatInfo.blueBits != sourceEffectiveFormat->blueBits ||
-- textureInternalFormatInfo.alphaBits != sourceEffectiveFormat->alphaBits)
-+ if (textureInternalFormatInfo.redBits != sourceEffectiveFormat.redBits ||
-+ textureInternalFormatInfo.greenBits != sourceEffectiveFormat.greenBits ||
-+ textureInternalFormatInfo.blueBits != sourceEffectiveFormat.blueBits ||
-+ textureInternalFormatInfo.alphaBits != sourceEffectiveFormat.alphaBits)
- {
- return false;
- }
---
-2.5.3.windows.1
-
diff --git a/src/angle/patches/0015-ANGLE-Use-ANGLE_D3D11_QDTD_AVAILABLE-to-check-struct-.patch b/src/angle/patches/0015-ANGLE-Use-ANGLE_D3D11_QDTD_AVAILABLE-to-check-struct-.patch
deleted file mode 100644
index 9809fefd9d..0000000000
--- a/src/angle/patches/0015-ANGLE-Use-ANGLE_D3D11_QDTD_AVAILABLE-to-check-struct-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 640361e72369d612270c6e59126019c917e33c9a Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Fri, 28 Jul 2017 09:02:50 +0200
-Subject: [PATCH] ANGLE: Use ANGLE_D3D11_QDTD_AVAILABLE to check struct's
- availability
-
-Checking mingw when defining the structure is not enough, as it is
-available in recent versions of MinGW. The define that is used is set
-depending on a configure test which works independently of the used
-toolchain.
-
-Change-Id: Ia9cb48f3e673841101a93cbc8ea23aff9547f639
----
- src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-index 972c289..97c65e1 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Query11.cpp
-@@ -20,7 +20,7 @@ typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
- } D3D11_QUERY_DATA_SO_STATISTICS;
- #endif // ANGLE_MINGW32_COMPAT
-
--#ifdef __MINGW32__
-+#ifndef ANGLE_D3D11_QDTD_AVAILABLE
- typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT {
- UINT64 Frequency;
- BOOL Disjoint;
---
-2.10.2.windows.1
-
diff --git a/src/angle/patches/0017-Remove-usage-of-auto_ptr-in-MacroExpander.patch b/src/angle/patches/0017-Remove-usage-of-auto_ptr-in-MacroExpander.patch
deleted file mode 100644
index 314a985bab..0000000000
--- a/src/angle/patches/0017-Remove-usage-of-auto_ptr-in-MacroExpander.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 946903d23ae361ddb05d2c0f64b339eb1694311b Mon Sep 17 00:00:00 2001
-From: Corentin Wallez <cwallez@chromium.org>
-Date: Mon, 18 Apr 2016 17:30:07 -0400
-Subject: [PATCH] Remove usage of auto_ptr in MacroExpander
-
-BUG=angleproject:1269
-
-Change-Id: I1fafa102b065f6da1797e8790ec3ed498d9d8b45
-Reviewed-on: https://chromium-review.googlesource.com/339379
-Reviewed-by: Jamie Madill <jmadill@chromium.org>
-Commit-Queue: Corentin Wallez <cwallez@chromium.org>
----
- src/compiler/preprocessor/MacroExpander.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/compiler/preprocessor/MacroExpander.h b/src/compiler/preprocessor/MacroExpander.h
-index 3cc860d75..dc870f626 100644
---- a/src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h
-+++ b/src/3rdparty/angle/src/compiler/preprocessor/MacroExpander.h
-@@ -83,7 +83,7 @@ class MacroExpander : public Lexer
- Diagnostics *mDiagnostics;
- bool mParseDefined;
-
-- std::auto_ptr<Token> mReserveToken;
-+ std::unique_ptr<Token> mReserveToken;
- std::vector<MacroContext *> mContextStack;
- };
-
---
-2.15.0.windows.1
-
diff --git a/src/angle/src/common/common.pri b/src/angle/src/common/common.pri
index 8abdc24186..b64dbd3e36 100644
--- a/src/angle/src/common/common.pri
+++ b/src/angle/src/common/common.pri
@@ -10,7 +10,8 @@ include (../config.pri)
INCLUDEPATH += \
$$ANGLE_DIR/src \
- $$ANGLE_DIR/include
+ $$ANGLE_DIR/include \
+ $$ANGLE_DIR/src/common/third_party/base
LIBS_PRIVATE = $$QMAKE_LIBS_GUI
diff --git a/src/angle/src/common/gles_common.pri b/src/angle/src/common/gles_common.pri
index 82d38a62e6..e32fd0ea01 100644
--- a/src/angle/src/common/gles_common.pri
+++ b/src/angle/src/common/gles_common.pri
@@ -1,7 +1,10 @@
CONFIG += simd no_batch object_parallel_to_source
include(common.pri)
-INCLUDEPATH += $$OUT_PWD/.. $$ANGLE_DIR/src/libANGLE
+INCLUDEPATH += \
+ $$OUT_PWD/.. \
+ $$ANGLE_DIR \
+ $$ANGLE_DIR/src/libANGLE
# Remember to adapt src/gui/configure.* if the Direct X version changes.
!winrt: \
@@ -30,10 +33,8 @@ qtConfig(angle_d3d11_qdtd): DEFINES += ANGLE_D3D11_QDTD_AVAILABLE
HEADERS += \
$$ANGLE_DIR/src/common/mathutil.h \
- $$ANGLE_DIR/src/common/blocklayout.h \
- $$ANGLE_DIR/src/common/NativeWindow.h \
- $$ANGLE_DIR/src/common/shadervars.h \
$$ANGLE_DIR/src/common/utilities.h \
+ $$ANGLE_DIR/src/common/version.h \
$$ANGLE_DIR/src/common/MemoryBuffer.h \
$$ANGLE_DIR/src/common/angleutils.h \
$$ANGLE_DIR/src/common/debug.h \
@@ -47,7 +48,6 @@ HEADERS += \
$$ANGLE_DIR/src/libANGLE/Config.h \
$$ANGLE_DIR/src/libANGLE/Constants.h \
$$ANGLE_DIR/src/libANGLE/Context.h \
- $$ANGLE_DIR/src/libANGLE/Data.h \
$$ANGLE_DIR/src/libANGLE/Debug.h \
$$ANGLE_DIR/src/libANGLE/Device.h \
$$ANGLE_DIR/src/libANGLE/Display.h \
@@ -81,21 +81,16 @@ HEADERS += \
$$ANGLE_DIR/src/libANGLE/VertexAttribute.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/BufferD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/CompilerD3D.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/copyimage.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DeviceD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DisplayD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DynamicHLSL.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/EGLImageD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/formatutilsD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/FramebufferD3D.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/generatemip.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/HLSLCompiler.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ImageD3D.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/imageformats.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexBuffer.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexDataManager.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimage.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimage_etc.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ProgramD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderbufferD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/RendererD3D.h \
@@ -106,8 +101,6 @@ HEADERS += \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/SwapChainD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureD3D.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureStorage.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/TransformFeedbackD3D.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/VaryingPacking.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexBuffer.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexDataManager.h \
$$ANGLE_DIR/src/libANGLE/renderer/BufferImpl.h \
@@ -115,21 +108,15 @@ HEADERS += \
$$ANGLE_DIR/src/libANGLE/renderer/DeviceImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/DisplayImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/FenceNVImpl.h \
- $$ANGLE_DIR/src/libANGLE/renderer/FenceSyncImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/FramebufferImpl.h \
- $$ANGLE_DIR/src/libANGLE/renderer/Image.h \
- $$ANGLE_DIR/src/libANGLE/renderer/ImplFactory.h \
$$ANGLE_DIR/src/libANGLE/renderer/ProgramImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/QueryImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/RenderbufferImpl.h \
- $$ANGLE_DIR/src/libANGLE/renderer/Renderer.h \
$$ANGLE_DIR/src/libANGLE/renderer/ShaderImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/SurfaceImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/TextureImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/TransformFeedbackImpl.h \
$$ANGLE_DIR/src/libANGLE/renderer/VertexArrayImpl.h \
- $$ANGLE_DIR/src/libANGLE/renderer/Workarounds.h \
- $$ANGLE_DIR/src/libANGLE/resource.h \
$$ANGLE_DIR/src/libANGLE/ResourceManager.h \
$$ANGLE_DIR/src/libANGLE/Sampler.h \
$$ANGLE_DIR/src/libANGLE/Shader.h \
@@ -142,16 +129,11 @@ HEADERS += \
$$ANGLE_DIR/src/libANGLE/validationES.h \
$$ANGLE_DIR/src/libANGLE/VertexArray.h \
$$ANGLE_DIR/src/libANGLE/VertexAttribute.h \
- $$ANGLE_DIR/src/libANGLE/vertexconversion.h \
$$ANGLE_DIR/src/libGLESv2/entry_points_egl.h \
$$ANGLE_DIR/src/libGLESv2/entry_points_egl_ext.h \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0.h \
$$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_ext.h \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0.h \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_ext.h \
$$ANGLE_DIR/src/libGLESv2/global_state.h \
- $$ANGLE_DIR/src/libGLESv2/resource.h \
- $$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.h
+ $$ANGLE_DIR/src/libGLESv2/resource.h
SOURCES += \
$$ANGLE_DIR/src/common/mathutil.cpp \
@@ -161,7 +143,14 @@ SOURCES += \
$$ANGLE_DIR/src/common/debug.cpp \
$$ANGLE_DIR/src/common/event_tracer.cpp \
$$ANGLE_DIR/src/common/Float16ToFloat32.cpp \
- $$ANGLE_DIR/src/third_party/murmurhash/MurmurHash3.cpp \
+ $$ANGLE_DIR/src/common/string_utils.cpp \
+ $$ANGLE_DIR/src/common/uniform_type_info_autogen.cpp \
+ $$ANGLE_DIR/src/common/third_party/smhasher/src/PMurHash.cpp \
+ $$ANGLE_DIR/src/common/third_party/base/anglebase/sha1.cc \
+ $$ANGLE_DIR/src/image_util/copyimage.cpp \
+ $$ANGLE_DIR/src/image_util/imageformats.cpp \
+ $$ANGLE_DIR/src/image_util/loadimage.cpp \
+ $$ANGLE_DIR/src/image_util/loadimage_etc.cpp \
$$ANGLE_DIR/src/libANGLE/angletypes.cpp \
$$ANGLE_DIR/src/libANGLE/AttributeMap.cpp \
$$ANGLE_DIR/src/libANGLE/Buffer.cpp \
@@ -169,57 +158,75 @@ SOURCES += \
$$ANGLE_DIR/src/libANGLE/Compiler.cpp \
$$ANGLE_DIR/src/libANGLE/Config.cpp \
$$ANGLE_DIR/src/libANGLE/Context.cpp \
- $$ANGLE_DIR/src/libANGLE/Data.cpp \
+ $$ANGLE_DIR/src/libANGLE/ContextState.cpp \
$$ANGLE_DIR/src/libANGLE/Debug.cpp \
$$ANGLE_DIR/src/libANGLE/Device.cpp \
$$ANGLE_DIR/src/libANGLE/Display.cpp \
$$ANGLE_DIR/src/libANGLE/Error.cpp \
+ $$ANGLE_DIR/src/libANGLE/es3_copy_conversion_table_autogen.cpp \
$$ANGLE_DIR/src/libANGLE/Fence.cpp \
$$ANGLE_DIR/src/libANGLE/formatutils.cpp \
+ $$ANGLE_DIR/src/libANGLE/format_map_autogen.cpp \
$$ANGLE_DIR/src/libANGLE/Framebuffer.cpp \
$$ANGLE_DIR/src/libANGLE/FramebufferAttachment.cpp \
$$ANGLE_DIR/src/libANGLE/HandleAllocator.cpp \
+ $$ANGLE_DIR/src/libANGLE/HandleRangeAllocator.cpp \
$$ANGLE_DIR/src/libANGLE/Image.cpp \
$$ANGLE_DIR/src/libANGLE/ImageIndex.cpp \
$$ANGLE_DIR/src/libANGLE/IndexRangeCache.cpp \
+ $$ANGLE_DIR/src/libANGLE/LoggingAnnotator.cpp \
+ $$ANGLE_DIR/src/libANGLE/MemoryProgramCache.cpp \
+ $$ANGLE_DIR/src/libANGLE/PackedGLEnums_autogen.cpp \
+ $$ANGLE_DIR/src/libANGLE/params.cpp \
+ $$ANGLE_DIR/src/libANGLE/Path.cpp \
$$ANGLE_DIR/src/libANGLE/Platform.cpp \
$$ANGLE_DIR/src/libANGLE/Program.cpp \
+ $$ANGLE_DIR/src/libANGLE/ProgramLinkedResources.cpp \
+ $$ANGLE_DIR/src/libANGLE/ProgramPipeline.cpp \
$$ANGLE_DIR/src/libANGLE/Query.cpp \
$$ANGLE_DIR/src/libANGLE/queryconversions.cpp \
+ $$ANGLE_DIR/src/libANGLE/queryutils.cpp \
$$ANGLE_DIR/src/libANGLE/Renderbuffer.cpp \
$$ANGLE_DIR/src/libANGLE/ResourceManager.cpp \
$$ANGLE_DIR/src/libANGLE/Sampler.cpp \
$$ANGLE_DIR/src/libANGLE/Shader.cpp \
$$ANGLE_DIR/src/libANGLE/State.cpp \
+ $$ANGLE_DIR/src/libANGLE/Stream.cpp \
$$ANGLE_DIR/src/libANGLE/Surface.cpp \
$$ANGLE_DIR/src/libANGLE/Texture.cpp \
+ $$ANGLE_DIR/src/libANGLE/Thread.cpp \
$$ANGLE_DIR/src/libANGLE/TransformFeedback.cpp \
$$ANGLE_DIR/src/libANGLE/Uniform.cpp \
$$ANGLE_DIR/src/libANGLE/validationEGL.cpp \
$$ANGLE_DIR/src/libANGLE/validationES.cpp \
$$ANGLE_DIR/src/libANGLE/validationES2.cpp \
$$ANGLE_DIR/src/libANGLE/validationES3.cpp \
+ $$ANGLE_DIR/src/libANGLE/validationES31.cpp \
+ $$ANGLE_DIR/src/libANGLE/VaryingPacking.cpp \
$$ANGLE_DIR/src/libANGLE/VertexArray.cpp \
$$ANGLE_DIR/src/libANGLE/VertexAttribute.cpp \
+ $$ANGLE_DIR/src/libANGLE/WorkerThread.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/ContextImpl.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/DeviceImpl.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/DisplayImpl.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/Renderer.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/driver_utils.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/Format_table_autogen.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/load_functions_table_autogen.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/renderer_utils.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/SurfaceImpl.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/TextureImpl.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/BufferD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/CompilerD3D.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/copyimage.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DeviceD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DisplayD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/DynamicHLSL.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/EGLImageD3D.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/formatutilsD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/FramebufferD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/HLSLCompiler.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ImageD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexBuffer.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexDataManager.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimage.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimage_etc.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ProgramD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/RendererD3D.cpp \
@@ -227,22 +234,20 @@ SOURCES += \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/SurfaceD3D.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/SwapChainD3D.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureD3D.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/TransformFeedbackD3D.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/VaryingPacking.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexBuffer.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexDataManager.cpp \
$$ANGLE_DIR/src/libGLESv2/entry_points_egl.cpp \
$$ANGLE_DIR/src/libGLESv2/entry_points_egl_ext.cpp \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0.cpp \
+ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_autogen.cpp \
+ $$ANGLE_DIR/src/libGLESv2/proc_table_autogen.cpp \
$$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_ext.cpp \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0.cpp \
- $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_ext.cpp \
+ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_autogen.cpp \
+ $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_1_autogen.cpp \
$$ANGLE_DIR/src/libGLESv2/global_state.cpp \
$$ANGLE_DIR/src/libGLESv2/libGLESv2.cpp
-SSE2_SOURCES += $$ANGLE_DIR/src/libANGLE/renderer/d3d/loadimageSSE2.cpp
-
angle_d3d11 {
HEADERS += \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Blit11.h \
@@ -256,8 +261,7 @@ angle_d3d11 {
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Image11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/internal_format_initializer_table.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/load_functions_table.h \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/NativeWindow11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Query11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Renderer11.h \
@@ -267,7 +271,6 @@ angle_d3d11 {
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StateManager11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/swizzle_format_info.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Trim11.h \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h \
@@ -277,7 +280,9 @@ angle_d3d11 {
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Context11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp \
@@ -285,21 +290,24 @@ angle_d3d11 {
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Image11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/internal_format_initializer_table.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/load_functions_table_autogen.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Query11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StreamProducerNV12.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/swizzle_format_info_autogen.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp
}
@@ -327,12 +335,14 @@ angle_d3d11 {
SOURCES += \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Buffer9.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Context9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Image9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Query9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp \
@@ -343,7 +353,7 @@ angle_d3d11 {
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.cpp \
- $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp \
$$ANGLE_DIR/src/third_party/systeminfo/SystemInfo.cpp
} else {
HEADERS += \
@@ -354,6 +364,7 @@ angle_d3d11 {
SOURCES += \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp \
$$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
}
@@ -367,9 +378,6 @@ BLITVS = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.vs
standardvs.input = BLITVS
standardvs.type = vs_2_0
standardvs.output = standardvs.h
-flipyvs.input = BLITVS
-flipyvs.type = vs_2_0
-flipyvs.output = flipyvs.h
BLITPS = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.ps
passthroughps.input = BLITPS
@@ -378,9 +386,21 @@ passthroughps.output = passthroughps.h
luminanceps.input = BLITPS
luminanceps.type = ps_2_0
luminanceps.output = luminanceps.h
+luminancepremultps.input = BLITPS
+luminancepremultps.type = ps_2_0
+luminancepremultps.output = luminancepremultps.h
+luminanceunmultps.input = BLITPS
+luminanceunmultps.type = ps_2_0
+luminanceunmultps.output = luminanceunmultps.h
componentmaskps.input = BLITPS
componentmaskps.type = ps_2_0
componentmaskps.output = componentmaskps.h
+componentmaskpremultps.input = BLITPS
+componentmaskpremultps.type = ps_2_0
+componentmaskpremultps.output = componentmaskpremultps.h
+componentmaskunmultps.input = BLITPS
+componentmaskunmultps.type = ps_2_0
+componentmaskunmultps.output = componentmaskunmultps.h
PASSTHROUGH2D = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2D11.hlsl
VS_Passthrough2D.input = PASSTHROUGH2D
@@ -431,29 +451,104 @@ PS_PassthroughR2DUI.output = passthroughr2dui11ps.h
PS_PassthroughR2DI.input = PASSTHROUGH2D
PS_PassthroughR2DI.type = ps_4_0
PS_PassthroughR2DI.output = passthroughr2di11ps.h
+PS_PassthroughA2D.input = PASSTHROUGH2D
+PS_PassthroughA2D.type = ps_4_0_level_9_3
+PS_PassthroughA2D.output = passthrougha2d11ps.h
+PS_PassthroughRGBA2DMS.input = PASSTHROUGH2D
+PS_PassthroughRGBA2DMS.type = ps_4_1
+PS_PassthroughRGBA2DMS.output = passthroughrgba2dms11ps.h
CLEAR = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Clear11.hlsl
-VS_ClearFloat.input = CLEAR
-VS_ClearFloat.type = vs_4_0_level_9_3
-VS_ClearFloat.output = clearfloat11vs.h
+VS_Clear_FL9.input = CLEAR
+VS_Clear_FL9.type = vs_4_0_level_9_3
+VS_Clear_FL9.output = clear11_fl9vs.h
PS_ClearFloat_FL9.input = CLEAR
PS_ClearFloat_FL9.type = ps_4_0_level_9_3
PS_ClearFloat_FL9.output = clearfloat11_fl9ps.h
-PS_ClearFloat.input = CLEAR
-PS_ClearFloat.type = ps_4_0
-PS_ClearFloat.output = clearfloat11ps.h
-VS_ClearUint.input = CLEAR
-VS_ClearUint.type = vs_4_0
-VS_ClearUint.output = clearuint11vs.h
-PS_ClearUint.input = CLEAR
-PS_ClearUint.type = ps_4_0
-PS_ClearUint.output = clearuint11ps.h
-VS_ClearSint.input = CLEAR
-VS_ClearSint.type = vs_4_0
-VS_ClearSint.output = clearsint11vs.h
-PS_ClearSint.input = CLEAR
-PS_ClearSint.type = ps_4_0
-PS_ClearSint.output = clearsint11ps.h
+VS_Clear.input = CLEAR
+VS_Clear.type = vs_4_0
+VS_Clear.output = clear11vs.h
+VS_Multiview_Clear.input = CLEAR
+VS_Multiview_Clear.type = vs_4_0
+VS_Multiview_Clear.output = clear11multiviewvs.h
+GS_Multiview_Clear.input = CLEAR
+GS_Multiview_Clear.type = gs_4_0
+GS_Multiview_Clear.output = clear11multiviewgs.h
+PS_ClearDepth.input = CLEAR
+PS_ClearDepth.type = ps_4_0
+PS_ClearDepth.output = cleardepth11ps.h
+PS_ClearFloat1.input = CLEAR
+PS_ClearFloat1.type = ps_4_0
+PS_ClearFloat1.output = clearfloat11ps1.h
+PS_ClearFloat2.input = CLEAR
+PS_ClearFloat2.type = ps_4_0
+PS_ClearFloat2.output = clearfloat11ps2.h
+PS_ClearFloat3.input = CLEAR
+PS_ClearFloat3.type = ps_4_0
+PS_ClearFloat3.output = clearfloat11ps3.h
+PS_ClearFloat4.input = CLEAR
+PS_ClearFloat4.type = ps_4_0
+PS_ClearFloat4.output = clearfloat11ps4.h
+PS_ClearFloat5.input = CLEAR
+PS_ClearFloat5.type = ps_4_0
+PS_ClearFloat5.output = clearfloat11ps5.h
+PS_ClearFloat6.input = CLEAR
+PS_ClearFloat6.type = ps_4_0
+PS_ClearFloat6.output = clearfloat11ps6.h
+PS_ClearFloat7.input = CLEAR
+PS_ClearFloat7.type = ps_4_0
+PS_ClearFloat7.output = clearfloat11ps7.h
+PS_ClearFloat8.input = CLEAR
+PS_ClearFloat8.type = ps_4_0
+PS_ClearFloat8.output = clearfloat11ps8.h
+PS_ClearUint1.input = CLEAR
+PS_ClearUint1.type = ps_4_0
+PS_ClearUint1.output = clearuint11ps1.h
+PS_ClearUint2.input = CLEAR
+PS_ClearUint2.type = ps_4_0
+PS_ClearUint2.output = clearuint11ps2.h
+PS_ClearUint3.input = CLEAR
+PS_ClearUint3.type = ps_4_0
+PS_ClearUint3.output = clearuint11ps3.h
+PS_ClearUint4.input = CLEAR
+PS_ClearUint4.type = ps_4_0
+PS_ClearUint4.output = clearuint11ps4.h
+PS_ClearUint5.input = CLEAR
+PS_ClearUint5.type = ps_4_0
+PS_ClearUint5.output = clearuint11ps5.h
+PS_ClearUint6.input = CLEAR
+PS_ClearUint6.type = ps_4_0
+PS_ClearUint6.output = clearuint11ps6.h
+PS_ClearUint7.input = CLEAR
+PS_ClearUint7.type = ps_4_0
+PS_ClearUint7.output = clearuint11ps7.h
+PS_ClearUint8.input = CLEAR
+PS_ClearUint8.type = ps_4_0
+PS_ClearUint8.output = clearuint11ps8.h
+PS_ClearSint1.input = CLEAR
+PS_ClearSint1.type = ps_4_0
+PS_ClearSint1.output = clearsint11ps1.h
+PS_ClearSint2.input = CLEAR
+PS_ClearSint2.type = ps_4_0
+PS_ClearSint2.output = clearsint11ps2.h
+PS_ClearSint3.input = CLEAR
+PS_ClearSint3.type = ps_4_0
+PS_ClearSint3.output = clearsint11ps3.h
+PS_ClearSint4.input = CLEAR
+PS_ClearSint4.type = ps_4_0
+PS_ClearSint4.output = clearsint11ps4.h
+PS_ClearSint5.input = CLEAR
+PS_ClearSint5.type = ps_4_0
+PS_ClearSint5.output = clearsint11ps5.h
+PS_ClearSint6.input = CLEAR
+PS_ClearSint6.type = ps_4_0
+PS_ClearSint6.output = clearsint11ps6.h
+PS_ClearSint7.input = CLEAR
+PS_ClearSint7.type = ps_4_0
+PS_ClearSint7.output = clearsint11ps7.h
+PS_ClearSint8.input = CLEAR
+PS_ClearSint8.type = ps_4_0
+PS_ClearSint8.output = clearsint11ps8.h
PASSTHROUGH3D = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough3D11.hlsl
VS_Passthrough3D.input = PASSTHROUGH3D
@@ -551,15 +646,81 @@ PS_BufferToTexture_4UI.input = BUFFERTOTEXTURE
PS_BufferToTexture_4UI.type = ps_4_0
PS_BufferToTexture_4UI.output = buffertotexture11_ps_4ui.h
+MULTIPLYALPHA = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/MultiplyAlpha.hlsl
+PS_FtoF_PM_RGBA.input = MULTIPLYALPHA
+PS_FtoF_PM_RGBA.type = ps_4_0
+PS_FtoF_PM_RGBA.output = multiplyalpha_ftof_pm_rgba_ps.h
+PS_FtoF_UM_RGBA.input = MULTIPLYALPHA
+PS_FtoF_UM_RGBA.type = ps_4_0
+PS_FtoF_UM_RGBA.output = multiplyalpha_ftof_um_rgba_ps.h
+PS_FtoF_PM_RGB.input = MULTIPLYALPHA
+PS_FtoF_PM_RGB.type = ps_4_0
+PS_FtoF_PM_RGB.output = multiplyalpha_ftof_pm_rgb_ps.h
+PS_FtoF_UM_RGB.input = MULTIPLYALPHA
+PS_FtoF_UM_RGB.type = ps_4_0
+PS_FtoF_UM_RGB.output = multiplyalpha_ftof_um_rgb_ps.h
+PS_FtoU_PT_RGBA.input = MULTIPLYALPHA
+PS_FtoU_PT_RGBA.type = ps_4_0
+PS_FtoU_PT_RGBA.output = multiplyalpha_ftou_pt_rgba_ps.h
+PS_FtoU_PM_RGBA.input = MULTIPLYALPHA
+PS_FtoU_PM_RGBA.type = ps_4_0
+PS_FtoU_PM_RGBA.output = multiplyalpha_ftou_pm_rgba_ps.h
+PS_FtoU_UM_RGBA.input = MULTIPLYALPHA
+PS_FtoU_UM_RGBA.type = ps_4_0
+PS_FtoU_UM_RGBA.output = multiplyalpha_ftou_um_rgba_ps.h
+PS_FtoU_PT_RGB.input = MULTIPLYALPHA
+PS_FtoU_PT_RGB.type = ps_4_0
+PS_FtoU_PT_RGB.output = multiplyalpha_ftou_pt_rgb_ps.h
+PS_FtoU_PM_RGB.input = MULTIPLYALPHA
+PS_FtoU_PM_RGB.type = ps_4_0
+PS_FtoU_PM_RGB.output = multiplyalpha_ftou_pm_rgb_ps.h
+PS_FtoU_UM_RGB.input = MULTIPLYALPHA
+PS_FtoU_UM_RGB.type = ps_4_0
+PS_FtoU_UM_RGB.output = multiplyalpha_ftou_um_rgb_ps.h
+PS_FtoF_PM_LUMA.input = MULTIPLYALPHA
+PS_FtoF_PM_LUMA.type = ps_4_0
+PS_FtoF_PM_LUMA.output = multiplyalpha_ftof_pm_luma_ps.h
+PS_FtoF_UM_LUMA.input = MULTIPLYALPHA
+PS_FtoF_UM_LUMA.type = ps_4_0
+PS_FtoF_UM_LUMA.output = multiplyalpha_ftof_um_luma_ps.h
+PS_FtoF_PM_LUMAALPHA.input = MULTIPLYALPHA
+PS_FtoF_PM_LUMAALPHA.type = ps_4_0
+PS_FtoF_PM_LUMAALPHA.output = multiplyalpha_ftof_pm_lumaalpha_ps.h
+PS_FtoF_UM_LUMAALPHA.input = MULTIPLYALPHA
+PS_FtoF_UM_LUMAALPHA.type = ps_4_0
+PS_FtoF_UM_LUMAALPHA.output = multiplyalpha_ftof_um_lumaalpha_ps.h
+
+RESOLVEDEPTHSTENCIL = \
+ $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveDepthStencil.hlsl
+VS_ResolveDepthStencil.input = RESOLVEDEPTHSTENCIL
+VS_ResolveDepthStencil.type = vs_4_1
+VS_ResolveDepthStencil.output = resolvedepthstencil11_vs.h
+PS_ResolveDepth.input = RESOLVEDEPTHSTENCIL
+PS_ResolveDepth.type = ps_4_1
+PS_ResolveDepth.output = resolvedepth11_ps.h
+PS_ResolveDepthStencil.input = RESOLVEDEPTHSTENCIL
+PS_ResolveDepthStencil.type = ps_4_1
+PS_ResolveDepthStencil.output = resolvedepthstencil11_ps.h
+PS_ResolveStencil.input = RESOLVEDEPTHSTENCIL
+PS_ResolveStencil.type = ps_4_1
+PS_ResolveStencil.output = resolvestencil11_ps.h
+
# D3D11
angle_d3d11: SHADERS = VS_Passthrough2D \
PS_PassthroughRGB2D PS_PassthroughRGB2DUI PS_PassthroughRGB2DI \
PS_PassthroughRGBA2D PS_PassthroughRGBA2DUI PS_PassthroughRGBA2DI \
PS_PassthroughRG2D PS_PassthroughRG2DUI PS_PassthroughRG2DI \
PS_PassthroughR2D PS_PassthroughR2DUI PS_PassthroughR2DI \
+ PS_PassthroughA2D \
PS_PassthroughLum2D PS_PassthroughLumAlpha2D PS_PassthroughDepth2D \
- VS_ClearFloat VS_ClearUint VS_ClearSint \
- PS_ClearFloat PS_ClearFloat_FL9 PS_ClearUint PS_ClearSint \
+ VS_Clear_FL9 PS_ClearFloat_FL9 VS_Clear VS_Multiview_Clear \
+ GS_Multiview_Clear PS_ClearDepth \
+ PS_ClearFloat1 PS_ClearFloat2 PS_ClearFloat3 PS_ClearFloat4 PS_ClearFloat5 \
+ PS_ClearFloat6 PS_ClearFloat7 PS_ClearFloat8 \
+ PS_ClearUint1 PS_ClearUint2 PS_ClearUint3 PS_ClearUint4 \
+ PS_ClearUint5 PS_ClearUint6 PS_ClearUint7 PS_ClearUint8 \
+ PS_ClearSint1 PS_ClearSint2 PS_ClearSint3 PS_ClearSint4 \
+ PS_ClearSint5 PS_ClearSint6 PS_ClearSint7 PS_ClearSint8 \
VS_Passthrough3D GS_Passthrough3D \
PS_PassthroughRGBA3D PS_PassthroughRGBA3DUI PS_PassthroughRGBA3DI \
PS_PassthroughRGB3D PS_PassthroughRGB3DUI PS_PassthroughRGB3DI \
@@ -570,10 +731,22 @@ angle_d3d11: SHADERS = VS_Passthrough2D \
PS_SwizzleF3D PS_SwizzleI3D PS_SwizzleUI3D \
PS_SwizzleF2DArray PS_SwizzleI2DArray PS_SwizzleUI2DArray \
VS_BufferToTexture GS_BufferToTexture \
- PS_BufferToTexture_4F PS_BufferToTexture_4I PS_BufferToTexture_4UI
+ PS_BufferToTexture_4F PS_BufferToTexture_4I PS_BufferToTexture_4UI \
+ PS_FtoF_PM_RGBA PS_FtoF_UM_RGBA PS_FtoF_PM_RGB PS_FtoF_UM_RGB \
+ PS_FtoU_PT_RGBA PS_FtoU_PM_RGBA PS_FtoU_UM_RGBA \
+ PS_FtoU_PT_RGB PS_FtoU_PM_RGB PS_FtoU_UM_RGB \
+ PS_FtoF_PM_LUMA PS_FtoF_UM_LUMA \
+ PS_FtoF_PM_LUMAALPHA PS_FtoF_UM_LUMAALPHA \
+ VS_ResolveDepthStencil PS_ResolveDepth PS_ResolveDepthStencil PS_ResolveStencil
+
+# This shader causes an internal compiler error in mingw73. Re-enable it, when
+# our mingw version can handle it.
+!mingw: angle_d3d11: SHADERS += PS_PassthroughRGBA2DMS
# D3D9
-!winrt: SHADERS += standardvs flipyvs passthroughps luminanceps componentmaskps
+!winrt: SHADERS += standardvs passthroughps \
+ luminanceps luminancepremultps luminanceunmultps \
+ componentmaskps componentmaskpremultps componentmaskunmultps
# Generate headers
for (SHADER, SHADERS) {
@@ -597,7 +770,6 @@ gles2_headers.files = \
gles2_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES2
gles3_headers.files = \
$$ANGLE_DIR/include/GLES3/gl3.h \
- $$ANGLE_DIR/include/GLES3/gl3ext.h \
$$ANGLE_DIR/include/GLES3/gl3platform.h
gles3_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES3
INSTALLS += khr_headers gles2_headers
diff --git a/src/angle/src/compiler/preprocessor/preprocessor.pro b/src/angle/src/compiler/preprocessor/preprocessor.pro
index 9d0728a72d..66bc59a5ff 100644
--- a/src/angle/src/compiler/preprocessor/preprocessor.pro
+++ b/src/angle/src/compiler/preprocessor/preprocessor.pro
@@ -3,7 +3,10 @@ include($$OUT_PWD/../../../../gui/qtgui-config.pri)
qtConfig(dynamicgl): CONFIG += not_installed
include(../../config.pri)
-INCLUDEPATH = $$ANGLE_DIR/src/compiler/preprocessor
+INCLUDEPATH = \
+ $$ANGLE_DIR/src \
+ $$ANGLE_DIR/src/common/third_party/base \
+ $$ANGLE_DIR/src/compiler/preprocessor
DEFINES += _SECURE_SCL=0
@@ -20,12 +23,10 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/preprocessor/DirectiveParser.h \
$$ANGLE_DIR/src/compiler/preprocessor/ExpressionParser.h \
$$ANGLE_DIR/src/compiler/preprocessor/Input.h \
- $$ANGLE_DIR/src/compiler/preprocessor/length_limits.h \
$$ANGLE_DIR/src/compiler/preprocessor/Lexer.h \
$$ANGLE_DIR/src/compiler/preprocessor/Macro.h \
$$ANGLE_DIR/src/compiler/preprocessor/MacroExpander.h \
$$ANGLE_DIR/src/compiler/preprocessor/numeric_lex.h \
- $$ANGLE_DIR/src/compiler/preprocessor/pp_utils.h \
$$ANGLE_DIR/src/compiler/preprocessor/Preprocessor.h \
$$ANGLE_DIR/src/compiler/preprocessor/SourceLocation.h \
$$ANGLE_DIR/src/compiler/preprocessor/Token.h \
diff --git a/src/angle/src/compiler/translator.pro b/src/angle/src/compiler/translator.pro
index 398b9230cc..c1bf73bdc6 100644
--- a/src/angle/src/compiler/translator.pro
+++ b/src/angle/src/compiler/translator.pro
@@ -5,7 +5,8 @@ include(../config.pri)
INCLUDEPATH += \
$$ANGLE_DIR/src \
- $$ANGLE_DIR/include
+ $$ANGLE_DIR/include \
+ $$ANGLE_DIR/src/common/third_party/base
DEFINES += _SECURE_SCL=0 _LIB ANGLE_TRANSLATOR_IMPLEMENTATION ANGLE_TRANSLATOR_STATIC ANGLE_ENABLE_HLSL
@@ -13,11 +14,9 @@ FLEX_SOURCES = $$ANGLE_DIR/src/compiler/translator/glslang.l
BISON_SOURCES = $$ANGLE_DIR/src/compiler/translator/glslang.y
HEADERS += \
- $$ANGLE_DIR/include/GLSLANG/ResourceLimits.h \
$$ANGLE_DIR/include/GLSLANG/ShaderLang.h \
$$ANGLE_DIR/include/GLSLANG/ShaderVars.h \
$$ANGLE_DIR/src/common/angleutils.h \
- $$ANGLE_DIR/src/common/blocklayout.h \
$$ANGLE_DIR/src/common/debug.h \
$$ANGLE_DIR/src/common/platform.h \
$$ANGLE_DIR/src/common/tls.h \
@@ -35,27 +34,18 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/Common.h \
$$ANGLE_DIR/src/compiler/translator/Compiler.h \
$$ANGLE_DIR/src/compiler/translator/ConstantUnion.h \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraphBuilder.h \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraph.h \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraphOutput.h \
$$ANGLE_DIR/src/compiler/translator/Diagnostics.h \
$$ANGLE_DIR/src/compiler/translator/DirectiveHandler.h \
$$ANGLE_DIR/src/compiler/translator/ExtensionBehavior.h \
$$ANGLE_DIR/src/compiler/translator/EmulatePrecision.h \
$$ANGLE_DIR/src/compiler/translator/FlagStd140Structs.h \
- $$ANGLE_DIR/src/compiler/translator/ForLoopUnroll.h \
$$ANGLE_DIR/src/compiler/translator/HashNames.h \
$$ANGLE_DIR/src/compiler/translator/InfoSink.h \
$$ANGLE_DIR/src/compiler/translator/InitializeDll.h \
$$ANGLE_DIR/src/compiler/translator/Initialize.h \
- $$ANGLE_DIR/src/compiler/translator/InitializeParseContext.h \
$$ANGLE_DIR/src/compiler/translator/InitializeVariables.h \
- $$ANGLE_DIR/src/compiler/translator/intermediate.h \
$$ANGLE_DIR/src/compiler/translator/IntermNode.h \
- $$ANGLE_DIR/src/compiler/translator/LoopInfo.h \
- $$ANGLE_DIR/src/compiler/translator/MMap.h \
$$ANGLE_DIR/src/compiler/translator/NodeSearch.h \
- $$ANGLE_DIR/src/compiler/translator/osinclude.h \
$$ANGLE_DIR/src/compiler/translator/Operator.h \
$$ANGLE_DIR/src/compiler/translator/OutputESSL.h \
$$ANGLE_DIR/src/compiler/translator/OutputGLSLBase.h \
@@ -63,25 +53,20 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/OutputHLSL.h \
$$ANGLE_DIR/src/compiler/translator/ParseContext.h \
$$ANGLE_DIR/src/compiler/translator/PoolAlloc.h \
- $$ANGLE_DIR/src/compiler/translator/PruneEmptyDeclarations.h \
$$ANGLE_DIR/src/compiler/translator/Pragma.h \
$$ANGLE_DIR/src/compiler/translator/RegenerateStructNames.h \
$$ANGLE_DIR/src/compiler/translator/RemovePow.h \
$$ANGLE_DIR/src/compiler/translator/RemoveDynamicIndexing.h \
$$ANGLE_DIR/src/compiler/translator/RemoveSwitchFallThrough.h \
- $$ANGLE_DIR/src/compiler/translator/RenameFunction.h \
$$ANGLE_DIR/src/compiler/translator/RewriteDoWhile.h \
$$ANGLE_DIR/src/compiler/translator/RewriteElseBlocks.h \
$$ANGLE_DIR/src/compiler/translator/SeparateArrayInitialization.h \
$$ANGLE_DIR/src/compiler/translator/SeparateDeclarations.h \
$$ANGLE_DIR/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.h \
$$ANGLE_DIR/src/compiler/translator/SearchSymbol.h \
- $$ANGLE_DIR/src/compiler/translator/ShHandle.h \
$$ANGLE_DIR/src/compiler/translator/SeparateExpressionsReturningArrays.h \
$$ANGLE_DIR/src/compiler/translator/StructureHLSL.h \
$$ANGLE_DIR/src/compiler/translator/SymbolTable.h \
- $$ANGLE_DIR/src/compiler/translator/timing/RestrictFragmentShaderTiming.h \
- $$ANGLE_DIR/src/compiler/translator/timing/RestrictVertexShaderTiming.h \
$$ANGLE_DIR/src/compiler/translator/TranslatorESSL.h \
$$ANGLE_DIR/src/compiler/translator/TranslatorGLSL.h \
$$ANGLE_DIR/src/compiler/translator/TranslatorHLSL.h \
@@ -95,7 +80,6 @@ HEADERS += \
$$ANGLE_DIR/src/compiler/translator/ValidateLimitations.h \
$$ANGLE_DIR/src/compiler/translator/ValidateOutputs.h \
$$ANGLE_DIR/src/compiler/translator/ValidateSwitch.h \
- $$ANGLE_DIR/src/compiler/translator/VariableInfo.h \
$$ANGLE_DIR/src/compiler/translator/VariablePacker.h \
$$ANGLE_DIR/src/compiler/translator/VersionGLSL.h \
$$ANGLE_DIR/src/third_party/compiler/ArrayBoundsClamper.h
@@ -104,77 +88,108 @@ HEADERS += \
SOURCES += \
$$ANGLE_DIR/src/common/debug.cpp \
$$ANGLE_DIR/src/common/tls.cpp \
+ $$ANGLE_DIR/src/compiler/translator/AddAndTrueToLoopCondition.cpp \
+ $$ANGLE_DIR/src/compiler/translator/AddDefaultReturnStatements.cpp \
$$ANGLE_DIR/src/compiler/translator/ArrayReturnValueToOutParameter.cpp \
$$ANGLE_DIR/src/compiler/translator/ASTMetadataHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/blocklayout.cpp \
$$ANGLE_DIR/src/compiler/translator/blocklayoutHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/BreakVariableAliasingInInnerLoops.cpp \
$$ANGLE_DIR/src/compiler/translator/BuiltInFunctionEmulator.cpp \
$$ANGLE_DIR/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/Cache.cpp \
$$ANGLE_DIR/src/compiler/translator/CallDAG.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ClampPointSize.cpp \
$$ANGLE_DIR/src/compiler/translator/CodeGen.cpp \
+ $$ANGLE_DIR/src/compiler/translator/CollectVariables.cpp \
$$ANGLE_DIR/src/compiler/translator/Compiler.cpp \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraph.cpp \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraphBuilder.cpp \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraphOutput.cpp \
- $$ANGLE_DIR/src/compiler/translator/depgraph/DependencyGraphTraverse.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ConstantUnion.cpp \
+ $$ANGLE_DIR/src/compiler/translator/DeclareAndInitBuiltinsForInstancedMultiview.cpp \
+ $$ANGLE_DIR/src/compiler/translator/DeferGlobalInitializers.cpp \
$$ANGLE_DIR/src/compiler/translator/Diagnostics.cpp \
$$ANGLE_DIR/src/compiler/translator/DirectiveHandler.cpp \
+ $$ANGLE_DIR/src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp \
+ $$ANGLE_DIR/src/compiler/translator/EmulateGLFragColorBroadcast.cpp \
$$ANGLE_DIR/src/compiler/translator/EmulatePrecision.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ExpandIntegerPowExpressions.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ExtensionBehavior.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ExtensionGLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/FindMain.cpp \
+ $$ANGLE_DIR/src/compiler/translator/FindSymbolNode.cpp \
$$ANGLE_DIR/src/compiler/translator/FlagStd140Structs.cpp \
- $$ANGLE_DIR/src/compiler/translator/ForLoopUnroll.cpp \
+ $$ANGLE_DIR/src/compiler/translator/HashNames.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ImageFunctionHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/InfoSink.cpp \
$$ANGLE_DIR/src/compiler/translator/Initialize.cpp \
$$ANGLE_DIR/src/compiler/translator/InitializeDll.cpp \
- $$ANGLE_DIR/src/compiler/translator/InitializeParseContext.cpp \
$$ANGLE_DIR/src/compiler/translator/InitializeVariables.cpp \
- $$ANGLE_DIR/src/compiler/translator/Intermediate.cpp \
$$ANGLE_DIR/src/compiler/translator/IntermNode.cpp \
- $$ANGLE_DIR/src/compiler/translator/intermOut.cpp \
+ $$ANGLE_DIR/src/compiler/translator/IntermNodePatternMatcher.cpp \
+ $$ANGLE_DIR/src/compiler/translator/IntermNode_util.cpp \
$$ANGLE_DIR/src/compiler/translator/IntermTraverse.cpp \
- $$ANGLE_DIR/src/compiler/translator/LoopInfo.cpp \
+ $$ANGLE_DIR/src/compiler/translator/IsASTDepthBelowLimit.cpp \
$$ANGLE_DIR/src/compiler/translator/Operator.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputESSL.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputGLSLBase.cpp \
$$ANGLE_DIR/src/compiler/translator/OutputHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/OutputTree.cpp \
+ $$ANGLE_DIR/src/compiler/translator/OutputVulkanGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/ParseContext.cpp \
$$ANGLE_DIR/src/compiler/translator/PoolAlloc.cpp \
- $$ANGLE_DIR/src/compiler/translator/PruneEmptyDeclarations.cpp \
+ $$ANGLE_DIR/src/compiler/translator/PruneNoOps.cpp \
+ $$ANGLE_DIR/src/compiler/translator/QualifierTypes.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RecordConstantPrecision.cpp \
$$ANGLE_DIR/src/compiler/translator/RegenerateStructNames.cpp \
- $$ANGLE_DIR/src/compiler/translator/RemovePow.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemoveArrayLengthMethod.cpp \
$$ANGLE_DIR/src/compiler/translator/RemoveDynamicIndexing.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemoveEmptySwitchStatements.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemoveInvariantDeclaration.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemoveNoOpCasesFromEndOfSwitchStatements.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemovePow.cpp \
$$ANGLE_DIR/src/compiler/translator/RemoveSwitchFallThrough.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RemoveUnreferencedVariables.cpp \
$$ANGLE_DIR/src/compiler/translator/RewriteDoWhile.cpp \
$$ANGLE_DIR/src/compiler/translator/RewriteElseBlocks.cpp \
- $$ANGLE_DIR/src/compiler/translator/SeparateArrayInitialization.cpp \
- $$ANGLE_DIR/src/compiler/translator/SeparateDeclarations.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RewriteTexelFetchOffset.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RewriteUnaryMinusOperatorFloat.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RewriteUnaryMinusOperatorInt.cpp \
+ $$ANGLE_DIR/src/compiler/translator/RunAtTheEndOfShader.cpp \
$$ANGLE_DIR/src/compiler/translator/ScalarizeVecAndMatConstructorArgs.cpp \
$$ANGLE_DIR/src/compiler/translator/SearchSymbol.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SeparateArrayInitialization.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SeparateDeclarations.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SeparateExpressionsReturningArrays.cpp \
$$ANGLE_DIR/src/compiler/translator/ShaderLang.cpp \
$$ANGLE_DIR/src/compiler/translator/ShaderVars.cpp \
- $$ANGLE_DIR/src/compiler/translator/SeparateExpressionsReturningArrays.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SimplifyLoopConditions.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SplitSequenceOperator.cpp \
$$ANGLE_DIR/src/compiler/translator/StructureHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/SymbolTable.cpp \
- $$ANGLE_DIR/src/compiler/translator/timing/RestrictFragmentShaderTiming.cpp \
- $$ANGLE_DIR/src/compiler/translator/timing/RestrictVertexShaderTiming.cpp \
+ $$ANGLE_DIR/src/compiler/translator/SymbolUniqueId.cpp \
+ $$ANGLE_DIR/src/compiler/translator/TextureFunctionHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorESSL.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorGLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/TranslatorHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/TranslatorVulkan.cpp \
$$ANGLE_DIR/src/compiler/translator/Types.cpp \
- $$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuitToIf.cpp \
$$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuitAST.cpp \
+ $$ANGLE_DIR/src/compiler/translator/UnfoldShortCircuitToIf.cpp \
$$ANGLE_DIR/src/compiler/translator/UniformHLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/UseInterfaceBlockFields.cpp \
$$ANGLE_DIR/src/compiler/translator/UtilsHLSL.cpp \
$$ANGLE_DIR/src/compiler/translator/util.cpp \
$$ANGLE_DIR/src/compiler/translator/ValidateGlobalInitializer.cpp \
$$ANGLE_DIR/src/compiler/translator/ValidateLimitations.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ValidateMaxParameters.cpp \
$$ANGLE_DIR/src/compiler/translator/ValidateOutputs.cpp \
$$ANGLE_DIR/src/compiler/translator/ValidateSwitch.cpp \
- $$ANGLE_DIR/src/compiler/translator/VariableInfo.cpp \
$$ANGLE_DIR/src/compiler/translator/VariablePacker.cpp \
+ $$ANGLE_DIR/src/compiler/translator/ValidateVaryingLocations.cpp \
$$ANGLE_DIR/src/compiler/translator/VersionGLSL.cpp \
+ $$ANGLE_DIR/src/compiler/translator/VectorizeVectorScalarArithmetic.cpp \
+ $$ANGLE_DIR/src/compiler/translator/WrapSwitchStatementsInBlocks.cpp \
$$ANGLE_DIR/src/third_party/compiler/ArrayBoundsClamper.cpp
diff --git a/src/angle/src/config.pri b/src/angle/src/config.pri
index 4beb095217..5c521281a6 100644
--- a/src/angle/src/config.pri
+++ b/src/angle/src/config.pri
@@ -55,7 +55,7 @@ CONFIG(debug, debug|release) {
!isEmpty(BUILD_PASS): BUILDSUBDIR = $$lower($$BUILD_PASS)/
# c++11 is needed by MinGW to get support for unordered_map.
-CONFIG += stl exceptions c++11
+CONFIG += stl exceptions c++11 c++14
INCLUDEPATH += . .. $$PWD/../include