summaryrefslogtreecommitdiffstats
path: root/src/angle/patches
diff options
context:
space:
mode:
Diffstat (limited to 'src/angle/patches')
-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.patch83
-rw-r--r--src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch43
-rw-r--r--src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch58
-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-initialization-of-zero-sized-window.patch32
-rw-r--r--src/angle/patches/0006-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch165
-rw-r--r--src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch48
-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-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/0011-ANGLE-Fix-build-for-ARM64.patch63
-rw-r--r--src/angle/patches/0012-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch59
-rw-r--r--src/angle/patches/0013-ANGLE-clean-up-displays-on-dll-unload.patch78
-rw-r--r--src/angle/patches/0014-ANGLE-Backport-fix-for-compilation-on-mingw-64bit-wi.patch35
-rw-r--r--src/angle/patches/0015-ANGLE-Invalidate-client-window-area-when-resizing-sw.patch37
-rw-r--r--src/angle/patches/0016-ANGLE-Fix-severe-performance-regression.patch37
-rw-r--r--src/angle/patches/0017-ANGLE-Fix-resizing-of-windows-Take-2.patch27
-rw-r--r--src/angle/patches/0018-ANGLE-d3d11-Do-not-register-windows-message-hooks-fo.patch45
20 files changed, 0 insertions, 1156 deletions
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
deleted file mode 100644
index 618ad08b4b..0000000000
--- a/src/angle/patches/0001-ANGLE-Use-pixel-sizes-in-the-XAML-swap-chain.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-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
deleted file mode 100644
index 186acd39dc..0000000000
--- a/src/angle/patches/0001-Fix-build-for-MinGW.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-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/0002-ANGLE-Add-support-for-querying-platform-device.patch b/src/angle/patches/0002-ANGLE-Add-support-for-querying-platform-device.patch
deleted file mode 100644
index d548ce465f..0000000000
--- a/src/angle/patches/0002-ANGLE-Add-support-for-querying-platform-device.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-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().
-As that extension is not supported by ANGLE, this patch adds similar
-functionality to the existing eglQuerySurfacePointerANGLE API. When
-EGL_DEVICE_EXT is passed as the queried attribute, the underlying
-D3D/DXGI device pointer is passed back to the caller via the value
-argument.
-
-The D3D device is needed for video support in QtMultimedia as well as
-the IDXGIDevice3::Trim() calls required by the Windows Store.
-
-Change-Id: Ib3dfd3edc47dbcc02b07f71980ba785508f2ee57
----
- src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 4 ++++
- src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h | 1 +
- src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 5 +++++
- src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h | 2 ++
- 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 8e78b71a36..ceb022d14c 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-@@ -351,6 +351,10 @@ egl::Error SurfaceD3D::querySurfacePointerANGLE(EGLint attribute, void **value)
- {
- *value = mSwapChain->getKeyedMutex();
- }
-+ else if (attribute == EGL_DEVICE_EXT)
-+ {
-+ *value = mSwapChain->getDevice();
-+ }
- else UNREACHABLE();
-
- 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 81c3d13da4..017737b878 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
-@@ -58,6 +58,7 @@ class SwapChainD3D : angle::NonCopyable
- EGLint width,
- EGLint height) = 0;
- virtual void recreate() = 0;
-+ 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 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
-@@ -1007,6 +1007,11 @@ void SwapChain11::recreate()
- // possibly should use this method instead of reset
- }
-
-+void *rx::SwapChain11::getDevice()
-+{
-+ 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 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
-@@ -61,6 +61,8 @@ class SwapChain11 final : public SwapChainD3D
- void *getKeyedMutex() override;
- EGLint getSamples() const { return mEGLSamples; }
-
-+ void *getDevice() override;
-+
- egl::Error getSyncValues(EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc) override;
-
- private:
---
-2.15.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
deleted file mode 100644
index 04517a116e..0000000000
--- a/src/angle/patches/0002-ANGLE-Fix-build-for-ARM.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-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/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch b/src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
deleted file mode 100644
index 1f51619f18..0000000000
--- a/src/angle/patches/0003-ANGLE-Fix-Windows-Store-D3D-Trim-and-Level-9-require.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-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
-the required D3D behaviors are met.
-
-Change-Id: If8bc2f8cd4b2f84e1d92a1627951da2537212125
----
- .../angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 15 ++++++++++++++-
- src/3rdparty/angle/src/libGLESv2/entry_points_egl_ext.cpp | 2 ++
- 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 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
-@@ -523,7 +523,20 @@ Renderer11::Renderer11(egl::Display *display)
-
- if (requestedMajorVersion == 9 && requestedMinorVersion == 3)
- {
-- mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
-+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 3)
-+ {
-+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
-+ }
-+#if defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 2)
-+ {
-+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_2);
-+ }
-+ if (requestedMinorVersion == EGL_DONT_CARE || requestedMinorVersion >= 1)
-+ {
-+ mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_1);
-+ }
-+#endif
- }
-
- 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 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
-@@ -54,6 +54,8 @@ EGLBoolean EGLAPIENTRY QuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surfa
- // validate the attribute parameter
- switch (attribute)
- {
-+ case EGL_DEVICE_EXT:
-+ break;
- case EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE:
- if (!display->getExtensions().surfaceD3DTexture2DShareHandle)
- {
---
-2.15.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
deleted file mode 100644
index 72a72f15be..0000000000
--- a/src/angle/patches/0004-ANGLE-fix-usage-of-shared-handles-for-WinRT-applicat.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-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-initialization-of-zero-sized-window.patch b/src/angle/patches/0005-ANGLE-Fix-initialization-of-zero-sized-window.patch
deleted file mode 100644
index eb67278628..0000000000
--- a/src/angle/patches/0005-ANGLE-Fix-initialization-of-zero-sized-window.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-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
-and hence the swapchain gets into an invalid state.
-
-Change-Id: Idbaed72deadb7b87052ac27e194a40d1810e6f7a
----
- .../libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp | 4 ++--
- 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 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
-@@ -324,8 +324,8 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device,
-
- HRESULT SwapChainPanelNativeWindow::scaleSwapChain(const Size &windowSize, const RECT &clientRect)
- {
-- 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.15.0.windows.1
-
diff --git a/src/angle/patches/0006-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
deleted file mode 100644
index f515b0a072..0000000000
--- a/src/angle/patches/0006-ANGLE-Fix-flickering-on-resize-when-D3D9-is-used.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 0fc1b9c7e87ab6cdb6bf7c81a1eee0a1d1f74e92 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-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
-used. The issue that was fixed there is not relevant in Qt's
-context so it is safe to revert the change.
-
-Task-number: QTBUG-59893
-Change-Id: I9306314b892612fbd1f7a058a2e606aedc0367bb
----
- .../angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 89 ++++++++++++++++++++++
- .../angle/src/libANGLE/renderer/d3d/SurfaceD3D.h | 4 +
- 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 ceb022d14c..8d3f44f2ad 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
-@@ -38,6 +38,7 @@ SurfaceD3D::SurfaceD3D(const egl::SurfaceState &state,
- mDepthStencilFormat(state.config->depthStencilFormat),
- mSwapChain(nullptr),
- mSwapIntervalDirty(true),
-+ mWindowSubclassed(false),
- 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();
- 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)
-+ {
-+ 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();
-+ if (!window)
-+ {
-+ return;
-+ }
-+
-+ DWORD processId;
-+ DWORD threadId = GetWindowThreadProcessId(window, &processId);
-+ if (processId != GetCurrentProcessId() || threadId != GetCurrentThreadId())
-+ {
-+ return;
-+ }
-+
-+ SetLastError(0);
-+ LONG_PTR oldWndProc = SetWindowLongPtr(window, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
-+ if(oldWndProc == 0 && GetLastError() != ERROR_SUCCESS)
-+ {
-+ mWindowSubclassed = false;
-+ return;
-+ }
-+
-+ SetProp(window, kSurfaceProperty, reinterpret_cast<HANDLE>(this));
-+ SetProp(window, kParentWndProc, reinterpret_cast<HANDLE>(oldWndProc));
-+ SetProp(window, kDisplayProperty, reinterpret_cast<HANDLE>(mDisplay));
-+ mWindowSubclassed = true;
-+#endif
-+}
-+
-+void SurfaceD3D::unsubclassWindow()
-+{
-+ if (!mWindowSubclassed)
-+ {
-+ return;
-+ }
-+
-+#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
-+ HWND window = mNativeWindow->getNativeWindow();
-+ if (!window)
-+ {
-+ return;
-+ }
-+
-+ // un-subclass
-+ LONG_PTR parentWndFunc = reinterpret_cast<LONG_PTR>(GetProp(window, kParentWndProc));
-+
-+ // Check the windowproc is still SurfaceWindowProc.
-+ // If this assert fails, then it is likely the application has subclassed the
-+ // hwnd as well and did not unsubclass before destroying its EGL context. The
-+ // application should be modified to either subclass before initializing the
-+ // EGL context, or to unsubclass before destroying the EGL context.
-+ if(parentWndFunc)
-+ {
-+ LONG_PTR prevWndFunc = SetWindowLongPtr(window, GWLP_WNDPROC, parentWndFunc);
-+ ASSERT(prevWndFunc == reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
-+ }
-+
-+ RemoveProp(window, kSurfaceProperty);
-+ RemoveProp(window, kParentWndProc);
-+ RemoveProp(window, kDisplayProperty);
-+#endif
-+ mWindowSubclassed = false;
-+}
-+
-+
- 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 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
- int backbufferWidth,
- int backbufferHeight);
-
-+ void subclassWindow();
-+ void unsubclassWindow();
-+
- RendererD3D *mRenderer;
- egl::Display *mDisplay;
-
-@@ -93,6 +96,7 @@ class SurfaceD3D : public SurfaceImpl
-
- SwapChainD3D *mSwapChain;
- bool mSwapIntervalDirty;
-+ bool mWindowSubclassed; // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking
-
- NativeWindowD3D *mNativeWindow; // Handler for the Window that the surface is created for.
- EGLint mWidth;
---
-2.15.0.windows.1
-
diff --git a/src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch b/src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch
deleted file mode 100644
index 2b4938be9b..0000000000
--- a/src/angle/patches/0007-ANGLE-Fix-resizing-of-windows.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f1568e10c2bd46450adebbd838bd32e4833a0a5c Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-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
-new size as viewport size.
-
-Task-number: QTBUG-62475
-Change-Id: I33a8dc1379a908e991b04bc31dfc6254a6d005c9
----
- .../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 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
-@@ -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
-- 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);
-- 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)
- {
---
-2.15.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
deleted file mode 100644
index d9b51fc411..0000000000
--- a/src/angle/patches/0008-ANGLE-winrt-Do-full-screen-update-if-the-the-window-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch b/src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch
deleted file mode 100644
index f57f528ad8..0000000000
--- a/src/angle/patches/0009-Revert-Fix-scanForWantedComponents-not-ignoring-attr.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-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
deleted file mode 100644
index 2fb65ce220..0000000000
--- a/src/angle/patches/0010-ANGLE-Disable-multisampling-to-avoid-crash-in-Qt-app.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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/0011-ANGLE-Fix-build-for-ARM64.patch b/src/angle/patches/0011-ANGLE-Fix-build-for-ARM64.patch
deleted file mode 100644
index 3a43894a8a..0000000000
--- a/src/angle/patches/0011-ANGLE-Fix-build-for-ARM64.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 416fb93dae5009bb51da9f6720a95918a2c79e78 Mon Sep 17 00:00:00 2001
-From: Thomas Miller <thomaslmiller91@gmail.com>
-Date: Tue Oct 16 08:29:58 2018 -0700
-Subject: [PATCH] ANGLE: Fix build for ARM64
-
-__popcnt, SSE, and intrin.h are not available when building for ARM64.
----
- src/3rdparty/angle/src/common/mathutil.h | 8 ++++----
- src/3rdparty/angle/src/common/platform.h | 2 +-
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/common/mathutil.h b/src/3rdparty/angle/src/common/mathutil.h
-index 372e432066..88aedddfe8 100644
---- a/src/3rdparty/angle/src/common/mathutil.h
-+++ b/src/3rdparty/angle/src/common/mathutil.h
-@@ -150,7 +150,7 @@ inline bool supportsSSE2()
- return supports;
- }
-
--#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(_M_ARM)
-+#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(_M_ARM) && !defined(_M_ARM64)
- {
- int info[4];
- __cpuid(info, 0);
-@@ -162,7 +162,7 @@ inline bool supportsSSE2()
- supports = (info[3] >> 26) & 1;
- }
- }
--#endif // defined(ANGLE_PLATFORM_WINDOWS) && !defined(_M_ARM)
-+#endif // defined(ANGLE_PLATFORM_WINDOWS) && !defined(_M_ARM) && !defined(_M_ARM64)
- checked = true;
- return supports;
- #else // defined(ANGLE_USE_SSE)
-@@ -884,14 +884,14 @@ inline uint32_t BitfieldReverse(uint32_t value)
-
- // Count the 1 bits.
- #if defined(ANGLE_PLATFORM_WINDOWS)
--#if defined(_M_ARM)
-+#if defined(_M_ARM) || defined(_M_ARM64)
- 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
-+#else // _M_ARM || _M_ARM64
- inline int BitCount(uint32_t bits)
- {
- return static_cast<int>(__popcnt(bits));
-diff --git a/src/3rdparty/angle/src/common/platform.h b/src/3rdparty/angle/src/common/platform.h
-index 47cd57b999..fb251da579 100644
---- a/src/3rdparty/angle/src/common/platform.h
-+++ b/src/3rdparty/angle/src/common/platform.h
-@@ -83,7 +83,7 @@
- # undef far
- #endif
-
--#if defined(_MSC_VER) && !defined(_M_ARM)
-+#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64)
- #include <intrin.h>
- #define ANGLE_USE_SSE
- #elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) && !defined(__MINGW32__)
diff --git a/src/angle/patches/0012-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch b/src/angle/patches/0012-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch
deleted file mode 100644
index 7009dec1ba..0000000000
--- a/src/angle/patches/0012-ANGLE-Dynamically-load-D3D-compiler-from-a-list.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From dff9676c60c51fa7af0749e1cb54305f112183e3 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Mon, 10 Dec 2018 08:33:14 +0100
-Subject: [PATCH] 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.
----
- src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-index b38765070..5d47308d6 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-@@ -14,6 +14,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
- {
-@@ -130,6 +134,27 @@ gl::Error HLSLCompiler::ensureInitialized()
- }
- #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.15.0.windows.1
-
diff --git a/src/angle/patches/0013-ANGLE-clean-up-displays-on-dll-unload.patch b/src/angle/patches/0013-ANGLE-clean-up-displays-on-dll-unload.patch
deleted file mode 100644
index fce3fd76b2..0000000000
--- a/src/angle/patches/0013-ANGLE-clean-up-displays-on-dll-unload.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From d8ca4f6d0d8fffd8319f340685e03751049678ae Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Tue, 16 Apr 2019 10:19:27 +0200
-Subject: [PATCH] ANGLE: clean up displays on dll unload
-
-If the displays are not cleaned up on dll unloading, profilers might
-report memory leaks.
-
-Change-Id: I04cbc3c2448bfb450f7d840e216827f86856e963
----
- src/3rdparty/angle/src/libANGLE/Display.cpp | 17 +++++++++++++++++
- src/3rdparty/angle/src/libANGLE/Display.h | 1 +
- .../angle/src/libGLESv2/global_state.cpp | 2 ++
- 3 files changed, 20 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/Display.cpp b/src/3rdparty/angle/src/libANGLE/Display.cpp
-index 735b472787..0bb0bb05b1 100644
---- a/src/3rdparty/angle/src/libANGLE/Display.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/Display.cpp
-@@ -364,6 +364,23 @@ Display *Display::GetDisplayFromDevice(Device *device, const AttributeMap &attri
- return display;
- }
-
-+//static
-+void Display::CleanupDisplays()
-+{
-+ // ~Display takes care of removing the entry from the according map
-+ {
-+ ANGLEPlatformDisplayMap *displays = GetANGLEPlatformDisplayMap();
-+ while (!displays->empty())
-+ delete displays->begin()->second;
-+ }
-+
-+ {
-+ DevicePlatformDisplayMap *displays = GetDevicePlatformDisplayMap();
-+ while (!displays->empty())
-+ delete displays->begin()->second;
-+ }
-+}
-+
- Display::Display(EGLenum platform, EGLNativeDisplayType displayId, Device *eglDevice)
- : mImplementation(nullptr),
- mDisplayId(displayId),
-diff --git a/src/3rdparty/angle/src/libANGLE/Display.h b/src/3rdparty/angle/src/libANGLE/Display.h
-index aa1d1c3b37..2a1c386d75 100644
---- a/src/3rdparty/angle/src/libANGLE/Display.h
-+++ b/src/3rdparty/angle/src/libANGLE/Display.h
-@@ -65,6 +65,7 @@ class Display final : angle::NonCopyable
- static Display *GetDisplayFromDevice(Device *device, const AttributeMap &attribMap);
- static Display *GetDisplayFromNativeDisplay(EGLNativeDisplayType nativeDisplay,
- const AttributeMap &attribMap);
-+ static void CleanupDisplays();
-
- static const ClientExtensions &GetClientExtensions();
- static const std::string &GetClientExtensionString();
-diff --git a/src/3rdparty/angle/src/libGLESv2/global_state.cpp b/src/3rdparty/angle/src/libGLESv2/global_state.cpp
-index c5f3dfe4e1..26045bf5b2 100644
---- a/src/3rdparty/angle/src/libGLESv2/global_state.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/global_state.cpp
-@@ -13,6 +13,7 @@
- #include "common/tls.h"
-
- #include "libANGLE/Thread.h"
-+#include "libANGLE/Display.h"
-
- namespace gl
- {
-@@ -140,6 +141,7 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE, DWORD reason, LPVOID)
- return static_cast<BOOL>(egl::DeallocateCurrentThread());
-
- case DLL_PROCESS_DETACH:
-+ egl::Display::CleanupDisplays();
- return static_cast<BOOL>(egl::TerminateProcess());
- }
-
---
-2.20.1.windows.1
-
diff --git a/src/angle/patches/0014-ANGLE-Backport-fix-for-compilation-on-mingw-64bit-wi.patch b/src/angle/patches/0014-ANGLE-Backport-fix-for-compilation-on-mingw-64bit-wi.patch
deleted file mode 100644
index a32f25d2c0..0000000000
--- a/src/angle/patches/0014-ANGLE-Backport-fix-for-compilation-on-mingw-64bit-wi.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e7ff4aa4ef2221aa02d39bdead7f35008016994e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
-Date: Fri, 26 Apr 2019 14:57:01 +0300
-Subject: [PATCH] ANGLE: Backport fix for compilation on mingw/64bit with clang
-
-This backports the following upstream fix from angle:
-https://github.com/google/angle/commit/63cc351fbad06c6241d1c7372fe76f74e1d09a10
----
- .../angle/src/common/third_party/smhasher/src/PMurHash.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/common/third_party/smhasher/src/PMurHash.cpp b/src/3rdparty/angle/src/common/third_party/smhasher/src/PMurHash.cpp
-index 071bc31539..93b48713cd 100644
---- a/src/3rdparty/angle/src/common/third_party/smhasher/src/PMurHash.cpp
-+++ b/src/3rdparty/angle/src/common/third_party/smhasher/src/PMurHash.cpp
-@@ -49,6 +49,7 @@ on big endian machines, or a byte-by-byte read if the endianess is unknown.
-
-
- #include "PMurHash.h"
-+#include <stdint.h>
-
- /* I used ugly type names in the header to avoid potential conflicts with
- * application or system typedefs & defines. Since I'm not including any more
-@@ -208,7 +209,7 @@ void PMurHash32_Process(uint32_t *ph1, uint32_t *pcarry, const void *key, int le
- /* This CPU does not handle unaligned word access */
-
- /* Consume enough so that the next data byte is word aligned */
-- int i = -(long)ptr & 3;
-+ int i = -(intptr_t)ptr & 3;
- if(i && i <= len) {
- DOBYTES(i, h1, c, n, ptr, len);
- }
---
-2.20.1 (Apple Git-117)
-
diff --git a/src/angle/patches/0015-ANGLE-Invalidate-client-window-area-when-resizing-sw.patch b/src/angle/patches/0015-ANGLE-Invalidate-client-window-area-when-resizing-sw.patch
deleted file mode 100644
index 9380437761..0000000000
--- a/src/angle/patches/0015-ANGLE-Invalidate-client-window-area-when-resizing-sw.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7d300c6e7d05f4e31c966f1298d11da3eae9d679 Mon Sep 17 00:00:00 2001
-From: Val Doroshchuk <valentyn.doroshchuk@qt.io>
-Date: Fri, 21 Jun 2019 11:24:06 +0200
-Subject: [PATCH] ANGLE: Invalidate client window area when resizing swap chain
-
-Inspired by:
-https://codereview.appspot.com/6812076/
-Resizing a window larger results in the newly exposed region being invalidated
-but the old region is treated as valid.
-This can result in the old region no longer updating.
-Was added to D3D9.
-
-Improving a fix from Filippo Cucchetto:
-https://codereview.qt-project.org/c/qt/qtbase/+/195336
-and pushing to D3D11.
-
-ifndef protects against compilation error for WinRT.
-Invalidate() should be used only for desktop apps.
-
-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 dcfd06484d..e8f13b388f 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -504,6 +504,10 @@ EGLint SwapChain11::resize(const gl::Context *context,
- ASSERT(SUCCEEDED(result));
- if (SUCCEEDED(result))
- {
-+#ifndef ANGLE_ENABLE_WINDOWS_STORE
-+ if (mNativeWindow->getNativeWindow())
-+ InvalidateRect(mNativeWindow->getNativeWindow(), nullptr, FALSE);
-+#endif
- const auto &format =
- d3d11::Format::Get(mOffscreenRenderTargetFormat, mRenderer->getRenderer11DeviceCaps());
- mBackBufferTexture.set(backbufferTexture, format);
---
-2.14.2.windows.1
-
diff --git a/src/angle/patches/0016-ANGLE-Fix-severe-performance-regression.patch b/src/angle/patches/0016-ANGLE-Fix-severe-performance-regression.patch
deleted file mode 100644
index e9cda1337f..0000000000
--- a/src/angle/patches/0016-ANGLE-Fix-severe-performance-regression.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From b215999d63d6e6b087e53e24a47b8b60520ec9e4 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Wed, 11 Mar 2020 13:59:39 +0100
-Subject: [PATCH] ANGLE: Fix severe performance regression
-
-The changed buffer usage priority that was introduced in our ANGLE
-update caused severe performance regressions for Qt applications.
-
-Fixes: QTBUG-73835
-Change-Id: I49839bb272cdeec0027264f2751b88bc149665ad
----
- src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h
-index ddbeeb90d2..f92a68454b 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Buffer11.h
-@@ -31,7 +31,6 @@ struct TranslatedAttribute;
- // The order of this enum governs priority of 'getLatestBufferStorage'.
- enum BufferUsage
- {
-- BUFFER_USAGE_SYSTEM_MEMORY,
- BUFFER_USAGE_STAGING,
- BUFFER_USAGE_VERTEX_OR_TRANSFORM_FEEDBACK,
- BUFFER_USAGE_INDEX,
-@@ -40,6 +39,7 @@ enum BufferUsage
- BUFFER_USAGE_PIXEL_UNPACK,
- BUFFER_USAGE_PIXEL_PACK,
- BUFFER_USAGE_UNIFORM,
-+ BUFFER_USAGE_SYSTEM_MEMORY,
- BUFFER_USAGE_EMULATED_INDEXED_VERTEX,
-
- BUFFER_USAGE_COUNT,
---
-2.20.1.windows.1
-
diff --git a/src/angle/patches/0017-ANGLE-Fix-resizing-of-windows-Take-2.patch b/src/angle/patches/0017-ANGLE-Fix-resizing-of-windows-Take-2.patch
deleted file mode 100644
index abab74b192..0000000000
--- a/src/angle/patches/0017-ANGLE-Fix-resizing-of-windows-Take-2.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 029d42d1049dcde7950c11fb9adf07c07a8c4c02 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Wed, 18 Mar 2020 10:56:53 +0100
-Subject: [PATCH] ANGLE: Fix resizing of windows (Take 2)
-
-Task-number: QTBUG-62475
-Change-Id: I0ea17e7875906508941ae64bb396a4236928b0f9
----
- .../angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-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 e8f13b388f..9ece77ecbc 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
-@@ -845,7 +845,7 @@ EGLint SwapChain11::copyOffscreenToBackbuffer(const gl::Context *context,
- stateManager->setRenderTarget(mBackBufferRTView.get(), nullptr);
-
- // Set the viewport
-- stateManager->setSimpleViewport(mWidth, mHeight);
-+ stateManager->setSimpleViewport(width, height);
-
- // Apply textures
- stateManager->setSimplePixelTextureAndSampler(mOffscreenSRView, mPassThroughSampler);
---
-2.20.1.windows.1
-
diff --git a/src/angle/patches/0018-ANGLE-d3d11-Do-not-register-windows-message-hooks-fo.patch b/src/angle/patches/0018-ANGLE-d3d11-Do-not-register-windows-message-hooks-fo.patch
deleted file mode 100644
index 03529c6531..0000000000
--- a/src/angle/patches/0018-ANGLE-d3d11-Do-not-register-windows-message-hooks-fo.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3d23de2ad72968d0bf43dac4a9a0f237cc9e03e2 Mon Sep 17 00:00:00 2001
-From: Oliver Wolff <oliver.wolff@qt.io>
-Date: Wed, 1 Apr 2020 14:48:48 +0200
-Subject: [PATCH] ANGLE: d3d11: Do not register windows message hooks for d3d11
- windows
-
-These message hooks are used to handle ALT+ENTER to enter/exit fullscreen
-mode and PRINTSCREEN to take screenshots. Qt is implementing these
-functionalities itself so we do not have to register these hooks.
-
-If too many of these hooks are registered, callbacks are no longer called
-and Qt's message queue is no longer handling messages. By saving these
-hooks we can make sure that more Qt windows at the same time are possible
-without getting unresponsive due to too many hooks being registered.
-
-Change-Id: I5354f91f08cbfeda5e8dc3ad7f824fbd5b3b2932
----
- .../src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
-index 5394e3d..f5e6c93 100644
---- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
-+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp
-@@ -168,7 +168,7 @@ HRESULT NativeWindow11Win32::createSwapChain(ID3D11Device *device,
- nullptr, nullptr, &swapChain1);
- if (SUCCEEDED(result))
- {
-- factory2->MakeWindowAssociation(getNativeWindow(), DXGI_MWA_NO_ALT_ENTER);
-+ factory2->MakeWindowAssociation(getNativeWindow(), DXGI_MWA_NO_WINDOW_CHANGES);
- *swapChain = static_cast<IDXGISwapChain *>(swapChain1);
- }
- SafeRelease(factory2);
-@@ -196,7 +196,7 @@ HRESULT NativeWindow11Win32::createSwapChain(ID3D11Device *device,
- HRESULT result = factory->CreateSwapChain(device, &swapChainDesc, swapChain);
- if (SUCCEEDED(result))
- {
-- factory->MakeWindowAssociation(getNativeWindow(), DXGI_MWA_NO_ALT_ENTER);
-+ factory->MakeWindowAssociation(getNativeWindow(), DXGI_MWA_NO_WINDOW_CHANGES);
- }
- return result;
- }
---
-2.7.4.windows.1
-