summaryrefslogtreecommitdiffstats
path: root/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch')
-rw-r--r--src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch1092
1 files changed, 533 insertions, 559 deletions
diff --git a/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch b/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
index e28bc797e3..dc091b0497 100644
--- a/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
+++ b/src/angle/patches/0002-ANGLE-Fix-compilation-with-MinGW.patch
@@ -1,7 +1,7 @@
-From 6f98a957829fd37106fb1f1c9f43a5bad626cdfc Mon Sep 17 00:00:00 2001
-From: Andrew Knight <andrew.knight@intopalo.com>
-Date: Wed, 25 Mar 2015 20:21:33 +0200
-Subject: [PATCH 2/5] ANGLE: Fix compilation with MinGW
+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.
@@ -9,43 +9,27 @@ It additionally adds a few missing includes needed for compilation.
Change-Id: I254c208209c0071fae5efb6727f2b3cfd5542da6
---
- src/3rdparty/angle/src/common/mathutil.h | 4 +
- src/3rdparty/angle/src/common/platform.h | 10 +-
- src/3rdparty/angle/src/libANGLE/angletypes.h | 1 +
- .../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 +
- .../src/libANGLE/renderer/d3d/d3d11/Query11.cpp | 7 +
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 83 +++++++++--
- .../src/libANGLE/renderer/d3d/d3d11/Renderer11.h | 3 +-
- .../renderer/d3d/d3d11/renderer11_utils.cpp | 152 +++++++++++++++++++++
- .../src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp | 4 +-
- 13 files changed, 283 insertions(+), 12 deletions(-)
+ 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/mathutil.h b/src/3rdparty/angle/src/common/mathutil.h
-index e096b1a..1015bd2 100644
---- a/src/3rdparty/angle/src/common/mathutil.h
-+++ b/src/3rdparty/angle/src/common/mathutil.h
-@@ -119,6 +119,9 @@ inline bool supportsSSE2()
- return supports;
- }
-
-+#if defined(__GNUC__)
-+ supports = __builtin_cpu_supports("sse2");
-+#else
- int info[4];
- __cpuid(info, 0);
-
-@@ -128,6 +131,7 @@ inline bool supportsSSE2()
-
- supports = (info[3] >> 26) & 1;
- }
-+#endif
-
- checked = true;
-
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
@@ -69,23 +53,11 @@ index 4e3851c..be4cb94 100644
# include <d3dcompiler.h>
# endif
-diff --git a/src/3rdparty/angle/src/libANGLE/angletypes.h b/src/3rdparty/angle/src/libANGLE/angletypes.h
-index a5f471d..e4e08b5 100644
---- a/src/3rdparty/angle/src/libANGLE/angletypes.h
-+++ b/src/3rdparty/angle/src/libANGLE/angletypes.h
-@@ -13,6 +13,7 @@
- #include "libANGLE/RefCountObject.h"
-
- #include <stdint.h>
-+#include <float.h>
-
- namespace gl
- {
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-index d709dca..9c72d6f 100644
+index 0d298bb..df0257e 100644
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
+++ b/src/3rdparty/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
-@@ -22,6 +22,15 @@ namespace
+@@ -25,6 +25,15 @@ namespace
#define CREATE_COMPILER_FLAG_INFO(flag) { flag, #flag }
@@ -102,12 +74,12 @@ index d709dca..9c72d6f 100644
{
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 3b36c64..d56b0ea 100644
+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
-@@ -12,6 +12,12 @@
- #include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
- #include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
+@@ -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 {
@@ -117,44 +89,39 @@ index 3b36c64..d56b0ea 100644
+
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 ae373f5..057c3be 100644
+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
-@@ -133,12 +133,14 @@ Clear11::Clear11(Renderer11 *renderer)
- mIntClearShader = CreateClearShader(device, DXGI_FORMAT_R32G32B32A32_SINT, g_VS_ClearSint, g_PS_ClearSint );
- }
+@@ -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)
- if (renderer->getDeviceContext1IfSupported())
- {
- D3D11_FEATURE_DATA_D3D11_OPTIONS d3d11Options;
- device->CheckFeatureSupport(D3D11_FEATURE_D3D11_OPTIONS, &d3d11Options, sizeof(D3D11_FEATURE_DATA_D3D11_OPTIONS));
- mSupportsClearView = (d3d11Options.ClearView != FALSE);
- }
+ ID3D11DeviceContext1 *deviceContext1 = mRenderer->getDeviceContext1IfSupported();
+#endif
- }
+ ID3D11Device *device = mRenderer->getDevice();
- Clear11::~Clear11()
-@@ -321,6 +323,7 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
+ 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)
{
-+#if defined(ANGLE_ENABLE_D3D11_1)
// We shouldn't reach here if deviceContext1 is unavailable.
- ASSERT(deviceContext1);
-
-@@ -331,6 +334,7 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
- rect.bottom = clearParams.scissor.y + clearParams.scissor.height;
-
+@@ -361,6 +364,7 @@ gl::Error Clear11::clearFramebuffer(const ClearParameters &clearParams, const gl
deviceContext1->ClearView(framebufferRTV, clearValues, &rect, 1);
-+#endif
}
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 fcca904..f1fe2bb 100644
+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()
@@ -167,47 +134,49 @@ index fcca904..f1fe2bb 100644
#if !defined(ANGLE_ENABLE_WINDOWS_STORE)
FreeLibrary(mD3d11Module);
-@@ -39,21 +41,27 @@ void DebugAnnotator11::beginEvent(const std::wstring &eventName)
- {
- initializeDevice();
+@@ -41,7 +43,9 @@ void DebugAnnotator11::beginEvent(const wchar_t *eventName)
+ if (mUserDefinedAnnotation != nullptr)
+ {
+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->BeginEvent(eventName.c_str());
+ mUserDefinedAnnotation->BeginEvent(eventName);
+#endif
+ }
}
- void DebugAnnotator11::endEvent()
- {
- initializeDevice();
+@@ -51,7 +55,9 @@ void DebugAnnotator11::endEvent()
+ if (mUserDefinedAnnotation != nullptr)
+ {
+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->EndEvent();
+ mUserDefinedAnnotation->EndEvent();
+#endif
+ }
}
- void DebugAnnotator11::setMarker(const std::wstring &markerName)
- {
- initializeDevice();
+@@ -61,7 +67,9 @@ void DebugAnnotator11::setMarker(const wchar_t *markerName)
+ if (mUserDefinedAnnotation != nullptr)
+ {
+#if defined(ANGLE_ENABLE_D3D11_1)
- mUserDefinedAnnotation->SetMarker(markerName.c_str());
+ mUserDefinedAnnotation->SetMarker(markerName);
+#endif
+ }
}
- bool DebugAnnotator11::getStatus()
-@@ -96,8 +104,10 @@ void DebugAnnotator11::initializeDevice()
- hr = D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_NULL, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, &device, nullptr, &context);
+@@ -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);
+ mUserDefinedAnnotation = d3d11::DynamicCastComObject<ID3DUserDefinedAnnotation>(context);
+ ASSERT(mUserDefinedAnnotation != nullptr);
+#endif
+ mInitialized = true;
+ }
- SafeRelease(device);
- SafeRelease(context);
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 0638364..3df62b0 100644
+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 @@
@@ -219,11 +188,32 @@ index 0638364..3df62b0 100644
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 e010190..4979ff5 100644
+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,13 @@
+@@ -13,6 +13,20 @@
#include <GLES2/gl2ext.h>
@@ -232,187 +222,170 @@ index e010190..4979ff5 100644
+ UINT64 NumPrimitivesWritten;
+ UINT64 PrimitivesStorageNeeded;
+} D3D11_QUERY_DATA_SO_STATISTICS;
-+#endif
++#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 dbed23f..5291a3a 100644
+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
-@@ -62,6 +62,67 @@
- #define ANGLE_SUPPRESS_D3D11_HAZARD_WARNINGS 1
+@@ -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
-+#ifndef __d3d11sdklayers_h__
-+#define D3D11_MESSAGE_CATEGORY UINT
-+#define D3D11_MESSAGE_SEVERITY UINT
-+#define D3D11_MESSAGE_ID UINT
-+struct D3D11_MESSAGE;
-+typedef struct D3D11_INFO_QUEUE_FILTER_DESC
-+{
-+ UINT NumCategories;
-+ D3D11_MESSAGE_CATEGORY *pCategoryList;
-+ UINT NumSeverities;
-+ D3D11_MESSAGE_SEVERITY *pSeverityList;
-+ UINT NumIDs;
-+ D3D11_MESSAGE_ID *pIDList;
-+} D3D11_INFO_QUEUE_FILTER_DESC;
-+typedef struct D3D11_INFO_QUEUE_FILTER
-+{
-+ D3D11_INFO_QUEUE_FILTER_DESC AllowList;
-+ D3D11_INFO_QUEUE_FILTER_DESC DenyList;
-+} D3D11_INFO_QUEUE_FILTER;
-+static const IID IID_ID3D11InfoQueue = { 0x6543dbb6, 0x1b48, 0x42f5, 0xab, 0x82, 0xe9, 0x7e, 0xc7, 0x43, 0x26, 0xf6 };
-+MIDL_INTERFACE("6543dbb6-1b48-42f5-ab82-e97ec74326f6") ID3D11InfoQueue : public IUnknown
-+{
-+public:
-+ virtual HRESULT __stdcall SetMessageCountLimit(UINT64) = 0;
-+ virtual void __stdcall ClearStoredMessages() = 0;
-+ virtual HRESULT __stdcall GetMessage(UINT64, D3D11_MESSAGE *, SIZE_T *) = 0;
-+ virtual UINT64 __stdcall GetNumMessagesAllowedByStorageFilter() = 0;
-+ virtual UINT64 __stdcall GetNumMessagesDeniedByStorageFilter() = 0;
-+ virtual UINT64 __stdcall GetNumStoredMessages() = 0;
-+ virtual UINT64 __stdcall GetNumStoredMessagesAllowedByRetrievalFilter() = 0;
-+ virtual UINT64 __stdcall GetNumMessagesDiscardedByMessageCountLimit() = 0;
-+ virtual UINT64 __stdcall GetMessageCountLimit() = 0;
-+ virtual HRESULT __stdcall AddStorageFilterEntries(D3D11_INFO_QUEUE_FILTER *) = 0;
-+ virtual HRESULT __stdcall GetStorageFilter(D3D11_INFO_QUEUE_FILTER *, SIZE_T *) = 0;
-+ virtual void __stdcall ClearStorageFilter() = 0;
-+ virtual HRESULT __stdcall PushEmptyStorageFilter() = 0;
-+ virtual HRESULT __stdcall PushCopyOfStorageFilter() = 0;
-+ virtual HRESULT __stdcall PushStorageFilter(D3D11_INFO_QUEUE_FILTER *) = 0;
-+ virtual void __stdcall PopStorageFilter() = 0;
-+ virtual UINT __stdcall GetStorageFilterStackSize() = 0;
-+ virtual HRESULT __stdcall AddRetrievalFilterEntries(D3D11_INFO_QUEUE_FILTER *) = 0;
-+ virtual HRESULT __stdcall GetRetrievalFilter(D3D11_INFO_QUEUE_FILTER *, SIZE_T *) = 0;
-+ virtual void __stdcall ClearRetrievalFilter() = 0;
-+ virtual HRESULT __stdcall PushEmptyRetrievalFilter() = 0;
-+ virtual HRESULT __stdcall PushCopyOfRetrievalFilter() = 0;
-+ virtual HRESULT __stdcall PushRetrievalFilter(D3D11_INFO_QUEUE_FILTER *) = 0;
-+ virtual void __stdcall PopRetrievalFilter() = 0;
-+ virtual UINT __stdcall GetRetrievalFilterStackSize() = 0;
-+ virtual HRESULT __stdcall AddMessage(D3D11_MESSAGE_CATEGORY, D3D11_MESSAGE_SEVERITY, D3D11_MESSAGE_ID, LPCSTR) = 0;
-+ virtual HRESULT __stdcall AddApplicationMessage(D3D11_MESSAGE_SEVERITY, LPCSTR) = 0;
-+ virtual HRESULT __stdcall SetBreakOnCategory(D3D11_MESSAGE_CATEGORY, BOOL) = 0;
-+ virtual HRESULT __stdcall SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY, BOOL) = 0;
-+ virtual HRESULT __stdcall SetBreakOnID(D3D11_MESSAGE_ID, BOOL) = 0;
-+ virtual BOOL __stdcall GetBreakOnCategory(D3D11_MESSAGE_CATEGORY) = 0;
-+ virtual BOOL __stdcall GetBreakOnSeverity(D3D11_MESSAGE_SEVERITY) = 0;
-+ virtual BOOL __stdcall GetBreakOnID(D3D11_MESSAGE_ID) = 0;
-+ virtual void __stdcall SetMuteDebugOutput(BOOL) = 0;
-+ virtual BOOL __stdcall GetMuteDebugOutput() = 0;
-+};
-+#endif
-+
- namespace rx
- {
+@@ -89,6 +89,7 @@ enum
+ MAX_TEXTURE_IMAGE_UNITS_VTF_SM4 = 16
+ };
-@@ -164,8 +225,7 @@ void CalculateConstantBufferParams(GLintptr offset, GLsizeiptr size, UINT *outFi
++#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
- Renderer11::Renderer11(egl::Display *display)
+ enum ANGLEFeatureLevel
+ {
+@@ -369,8 +371,10 @@ Renderer11::Renderer11(egl::Display *display)
: RendererD3D(display),
-- mStateCache(this),
+ mStateCache(this),
+ mStateManager(this),
+- mLastHistogramUpdateTime(ANGLEPlatformCurrent()->monotonicallyIncreasingTime()),
- mDebug(nullptr)
-+ mStateCache(this)
++ mLastHistogramUpdateTime(ANGLEPlatformCurrent()->monotonicallyIncreasingTime())
++#if !defined(ANGLE_MINGW32_COMPAT)
++ ,mDebug(nullptr)
++#endif
{
- // Initialize global annotator
- gl::InitializeDebugAnnotations(&mAnnotator);
-@@ -398,7 +458,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.
+ 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);
+ mDeviceContext1 = d3d11::DynamicCastComObject<ID3D11DeviceContext1>(mDeviceContext);
+#endif
- IDXGIDevice *dxgiDevice = NULL;
- result = mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice);
-@@ -421,6 +483,7 @@ egl::Error Renderer11::initialize()
+ IDXGIDevice *dxgiDevice = NULL;
+ result = mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice);
+@@ -595,6 +601,7 @@ egl::Error Renderer11::initialize()
- SafeRelease(dxgiDevice);
+ SafeRelease(dxgiDevice);
+#if defined(ANGLE_ENABLE_D3D11_1)
- IDXGIAdapter2 *dxgiAdapter2 = d3d11::DynamicCastComObject<IDXGIAdapter2>(mDxgiAdapter);
+ IDXGIAdapter2 *dxgiAdapter2 = d3d11::DynamicCastComObject<IDXGIAdapter2>(mDxgiAdapter);
- // On D3D_FEATURE_LEVEL_9_*, IDXGIAdapter::GetDesc returns "Software Adapter" for the description string.
-@@ -447,6 +510,7 @@ egl::Error Renderer11::initialize()
- }
+ // 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);
+ }
- SafeRelease(dxgiAdapter2);
++#if defined(ANGLE_ENABLE_D3D11_1)
+ SafeRelease(dxgiAdapter2);
+#endif
- memset(mDescription, 0, sizeof(mDescription));
- wcstombs(mDescription, mAdapterDescription.Description, sizeof(mDescription) - 1);
-@@ -463,7 +527,7 @@ egl::Error Renderer11::initialize()
+ 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)
- ID3D11InfoQueue *infoQueue;
-- result = mDevice->QueryInterface(__uuidof(ID3D11InfoQueue), (void **)&infoQueue);
-+ result = mDevice->QueryInterface(IID_ID3D11InfoQueue, (void **)&infoQueue);
-
- if (SUCCEEDED(result))
{
-@@ -481,10 +545,6 @@ egl::Error Renderer11::initialize()
- }
+@@ -671,6 +682,7 @@ egl::Error Renderer11::initialize()
+ #if !defined(NDEBUG)
+ mDebug = d3d11::DynamicCastComObject<ID3D11Debug>(mDevice);
#endif
++#endif // !ANGLE_MINGW32_COMPAT
--#if !defined(NDEBUG)
-- mDebug = d3d11::DynamicCastComObject<ID3D11Debug>(mDevice);
--#endif
--
initializeDevice();
- return egl::Error(EGL_SUCCESS);
-@@ -525,12 +585,14 @@ void Renderer11::initializeDevice()
-
- const gl::Caps &rendererCaps = getRendererCaps();
+@@ -859,6 +871,7 @@ void Renderer11::populateRenderer11DeviceCaps()
+ {
+ HRESULT hr = S_OK;
+#if defined(ANGLE_ENABLE_D3D11_1)
- if (getDeviceContext1IfSupported())
+ if (mDeviceContext1)
{
D3D11_FEATURE_DATA_D3D11_OPTIONS d3d11Options;
- mDevice->CheckFeatureSupport(D3D11_FEATURE_D3D11_OPTIONS, &d3d11Options, sizeof(D3D11_FEATURE_DATA_D3D11_OPTIONS));
- mSupportsConstantBufferOffsets = (d3d11Options.ConstantBufferOffsetting != FALSE);
+@@ -869,6 +882,7 @@ void Renderer11::populateRenderer11DeviceCaps()
+ mRenderer11DeviceCaps.supportsConstantBufferOffsets = (d3d11Options.ConstantBufferOffsetting != FALSE);
+ }
}
+#endif
- mForceSetVertexSamplerStates.resize(rendererCaps.maxVertexTextureImageUnits);
- mCurVertexSamplerStates.resize(rendererCaps.maxVertexTextureImageUnits);
-@@ -853,6 +915,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
+ 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 (mSupportsConstantBufferOffsets && uniformBufferSize != 0)
+ if (mRenderer11DeviceCaps.supportsConstantBufferOffsets && uniformBufferSize != 0)
{
UINT firstConstant = 0, numConstants = 0;
-@@ -861,6 +924,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- 1, &constantBuffer, &firstConstant, &numConstants);
+@@ -1318,6 +1335,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
+ 1, &constantBuffer, &firstConstant, &numConstants);
}
else
+#endif
{
- ASSERT(uniformBufferOffset == 0);
- mDeviceContext->VSSetConstantBuffers(getReservedVertexUniformBuffers() + uniformBufferIndex,
-@@ -901,6 +965,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
+ 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 (mSupportsConstantBufferOffsets && uniformBufferSize != 0)
+ if (mRenderer11DeviceCaps.supportsConstantBufferOffsets && uniformBufferSize != 0)
{
UINT firstConstant = 0, numConstants = 0;
-@@ -909,6 +974,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
- 1, &constantBuffer, &firstConstant, &numConstants);
+@@ -1379,6 +1398,7 @@ gl::Error Renderer11::setUniformBuffers(const gl::Data &data,
+ 1, &constantBuffer, &firstConstant, &numConstants);
}
else
+#endif
{
- ASSERT(uniformBufferOffset == 0);
- mDeviceContext->PSSetConstantBuffers(getReservedFragmentUniformBuffers() + uniformBufferIndex,
-@@ -2194,7 +2260,9 @@ void Renderer11::release()
+ mDeviceContext->PSSetConstantBuffers(
+ getReservedFragmentUniformBuffers() +
+@@ -2448,7 +2468,9 @@ void Renderer11::release()
SafeRelease(mDxgiFactory);
SafeRelease(mDxgiAdapter);
@@ -422,42 +395,129 @@ index dbed23f..5291a3a 100644
if (mDeviceContext)
{
-@@ -2204,7 +2272,6 @@ void Renderer11::release()
+@@ -2458,7 +2480,9 @@ void Renderer11::release()
}
SafeRelease(mDevice);
-- SafeRelease(mDebug);
++#if !defined(ANGLE_MINGW32_COMPAT)
+ SafeRelease(mDebug);
++#endif
if (mD3d11Module)
{
+@@ -2618,7 +2642,7 @@ bool Renderer11::getShareHandleSupport() const
+
+ if (deviceType == d3d11::ANGLE_D3D11_DEVICE_TYPE_WARP)
+ {
+-#ifndef ANGLE_ENABLE_WINDOWS_STORE
++#if !defined(ANGLE_ENABLE_WINDOWS_STORE) && !defined(__GNUC__)
+ if (!IsWindows8OrGreater())
+ {
+ // WARP on Windows 7 doesn't support shared handles
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 d1fec55..cc7d6c2 100644
+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
-@@ -20,6 +20,8 @@
- #include "libANGLE/renderer/d3d/d3d11/InputLayoutCache.h"
- #include "libANGLE/renderer/d3d/d3d11/RenderStateCache.h"
+@@ -28,6 +28,8 @@ class FramebufferAttachment;
+ struct ImageIndex;
+ }
+struct ID3D11DeviceContext1;
+
- namespace gl
+ namespace rx
{
- class FramebufferAttachment;
-@@ -390,7 +392,6 @@ class Renderer11 : public RendererD3D
+
+@@ -442,7 +444,9 @@ class Renderer11 : public RendererD3D
DXGI_ADAPTER_DESC mAdapterDescription;
char mDescription[128];
DXGIFactory *mDxgiFactory;
-- ID3D11Debug *mDebug;
++#if !defined(ANGLE_MINGW32_COMPAT)
+ ID3D11Debug *mDebug;
++#endif
- DebugAnnotator11 mAnnotator;
- };
+ 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 70b2b79..63085f4 100644
+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
-@@ -20,6 +20,88 @@
-
- #include <algorithm>
+@@ -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
@@ -544,127 +604,7 @@ index 70b2b79..63085f4 100644
namespace rx
{
-@@ -232,7 +314,9 @@ GLint GetMaximumClientVersion(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return 3;
-@@ -298,7 +382,9 @@ static bool GetNPOTTextureSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -316,7 +402,9 @@ static float GetMaximumAnisotropy(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_MAX_MAXANISOTROPY;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -336,7 +424,9 @@ static bool GetOcclusionQuerySupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -356,7 +446,9 @@ static bool GetEventQuerySupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
-@@ -374,7 +466,9 @@ static bool GetInstancingSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -397,7 +491,9 @@ static bool GetFramebufferMultisampleSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -414,7 +510,9 @@ static bool GetFramebufferBlitSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -437,7 +535,9 @@ static bool GetDerivativeInstructionSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
-@@ -453,7 +553,9 @@ static bool GetShaderTextureLODSupport(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return true;
-@@ -472,7 +574,9 @@ static size_t GetMaximumSimultaneousRenderTargets(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_SIMULTANEOUS_RENDER_TARGET_COUNT;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -490,7 +594,9 @@ static size_t GetMaximum2DTextureSize(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_U_OR_V_DIMENSION;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -508,7 +614,9 @@ static size_t GetMaximumCubeMapTextureSize(D3D_FEATURE_LEVEL featureLevel)
+@@ -601,7 +683,9 @@ static size_t GetMaximumCubeMapTextureSize(D3D_FEATURE_LEVEL featureLevel)
{
switch (featureLevel)
{
@@ -674,7 +614,7 @@ index 70b2b79..63085f4 100644
case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURECUBE_DIMENSION;
case D3D_FEATURE_LEVEL_10_1:
-@@ -526,7 +634,9 @@ static size_t GetMaximum2DTextureArraySize(D3D_FEATURE_LEVEL featureLevel)
+@@ -619,7 +703,9 @@ static size_t GetMaximum2DTextureArraySize(D3D_FEATURE_LEVEL featureLevel)
{
switch (featureLevel)
{
@@ -684,244 +624,278 @@ index 70b2b79..63085f4 100644
case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION;
case D3D_FEATURE_LEVEL_10_1:
-@@ -544,7 +654,9 @@ static size_t GetMaximum3DTextureSize(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_TEXTURE3D_U_V_OR_W_DIMENSION;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -562,7 +674,9 @@ static size_t GetMaximumViewportSize(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_VIEWPORT_BOUNDS_MAX;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -586,7 +700,9 @@ static size_t GetMaximumDrawIndexedIndexCount(D3D_FEATURE_LEVEL featureLevel)
+@@ -1266,7 +1352,9 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
- switch (featureLevel)
- {
+ IDXGIDevice *dxgiDevice = nullptr;
+ IDXGIAdapter *dxgiAdapter = nullptr;
+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
+ IDXGIAdapter2 *dxgiAdapter2 = nullptr;
+#endif
- case D3D_FEATURE_LEVEL_11_0:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits<GLint>::max();
-@@ -608,7 +724,9 @@ static size_t GetMaximumDrawVertexCount(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:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return std::numeric_limits<GLint>::max();
-@@ -625,7 +743,9 @@ static size_t GetMaximumVertexInputSlots(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_STANDARD_VERTEX_ELEMENT_COUNT;
+ ANGLED3D11DeviceType retDeviceType = ANGLE_D3D11_DEVICE_TYPE_UNKNOWN;
- case D3D_FEATURE_LEVEL_10_1: return D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT;
-@@ -645,7 +765,9 @@ static size_t GetMaximumVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel)
- // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass
- switch (featureLevel)
- {
+@@ -1277,6 +1365,7 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
+ if (SUCCEEDED(hr))
+ {
+ std::wstring adapterString;
+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -670,7 +792,9 @@ static size_t GetMaximumVertexUniformBlocks(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_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedVertexUniformBuffers();
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -698,7 +822,9 @@ static size_t GetReservedVertexOutputVectors(D3D_FEATURE_LEVEL featureLevel)
- // We must reserve one output vector for dx_Position.
- // We also reserve one for gl_Position, which we unconditionally output on Feature Levels 10_0+,
- // even if it's unused in the shader (e.g. for transform feedback). TODO: This could be improved.
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return 2;
-@@ -720,7 +846,9 @@ static size_t GetMaximumVertexOutputVectors(D3D_FEATURE_LEVEL featureLevel)
-
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_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
- case D3D_FEATURE_LEVEL_11_0: return D3D11_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(featureLevel);
-
- case D3D_FEATURE_LEVEL_10_1: return D3D10_1_VS_OUTPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(featureLevel);
-@@ -739,7 +867,9 @@ static size_t GetMaximumVertexTextureUnits(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_COMMONSHADER_SAMPLER_SLOT_COUNT;
+ {
+ DXGI_ADAPTER_DESC adapterDesc;
+ dxgiAdapter->GetDesc(&adapterDesc);
+@@ -1320,7 +1410,9 @@ ANGLED3D11DeviceType GetDeviceType(ID3D11Device *device)
- case D3D_FEATURE_LEVEL_10_1:
-@@ -761,7 +891,9 @@ static size_t GetMaximumPixelUniformVectors(D3D_FEATURE_LEVEL featureLevel)
- // TODO(geofflang): Remove hard-coded limit once the gl-uniform-arrays test can pass
- switch (featureLevel)
- {
+ SafeRelease(dxgiDevice);
+ SafeRelease(dxgiAdapter);
+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
+ SafeRelease(dxgiAdapter2);
+#endif
- case D3D_FEATURE_LEVEL_11_0: return 1024; // D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT;
- case D3D_FEATURE_LEVEL_10_1:
-@@ -786,7 +918,9 @@ static size_t GetMaximumPixelUniformBlocks(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_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - GetReservedPixelUniformBuffers();
+ 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"
- case D3D_FEATURE_LEVEL_10_1:
-@@ -805,7 +939,9 @@ static size_t GetMaximumPixelInputVectors(D3D_FEATURE_LEVEL featureLevel)
- {
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
+ #include <initguid.h>
++#if !defined(__MINGW32__)
+ #include <dcomp.h>
+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_PS_INPUT_REGISTER_COUNT - GetReservedVertexOutputVectors(featureLevel);
- case D3D_FEATURE_LEVEL_10_1:
-@@ -824,7 +960,9 @@ static size_t GetMaximumPixelTextureUnits(D3D_FEATURE_LEVEL featureLevel)
+ namespace rx
{
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT;
+@@ -31,9 +33,11 @@ NativeWindow::NativeWindow(EGLNativeWindowType window,
- case D3D_FEATURE_LEVEL_10_1:
-@@ -843,7 +981,9 @@ static int GetMinimumTexelOffset(D3D_FEATURE_LEVEL featureLevel)
+ NativeWindow::~NativeWindow()
{
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE;
-
- case D3D_FEATURE_LEVEL_10_1:
-@@ -862,7 +1002,9 @@ static int GetMaximumTexelOffset(D3D_FEATURE_LEVEL featureLevel)
- {
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
++#if !defined(__MINGW32__)
+ SafeRelease(mCompositionTarget);
+ SafeRelease(mDevice);
+ SafeRelease(mVisual);
+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE;
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE;
-@@ -885,7 +1027,9 @@ static size_t GetMaximumConstantBufferSize(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_CONSTANT_BUFFER_ELEMENT_COUNT * bytesPerComponent;
+ bool NativeWindow::initialize()
+@@ -66,6 +70,7 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
+ return E_INVALIDARG;
+ }
- case D3D_FEATURE_LEVEL_10_1:
-@@ -904,7 +1048,9 @@ static size_t GetMaximumStreamOutputBuffers(D3D_FEATURE_LEVEL featureLevel)
- {
- switch (featureLevel)
++#if !defined(__MINGW32__)
+ if (mDirectComposition)
{
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return D3D11_SO_BUFFER_SLOT_COUNT;
+ HMODULE dcomp = ::GetModuleHandle(TEXT("dcomp.dll"));
+@@ -171,6 +176,7 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
+ SafeRelease(factory2);
+ return result;
+ }
++#endif // !__MINGW32__
- case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SO_BUFFER_SLOT_COUNT;
-@@ -922,7 +1068,9 @@ static size_t GetMaximumStreamOutputInterleavedComponents(D3D_FEATURE_LEVEL feat
- {
- switch (featureLevel)
- {
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0:
+ DXGI_SWAP_CHAIN_DESC swapChainDesc = {};
+ swapChainDesc.BufferCount = 1;
+@@ -202,9 +208,11 @@ HRESULT NativeWindow::createSwapChain(ID3D11Device* device, DXGIFactory* factory
- case D3D_FEATURE_LEVEL_10_1:
-@@ -940,7 +1088,9 @@ static size_t GetMaximumStreamOutputSeparateComponents(D3D_FEATURE_LEVEL feature
+ void NativeWindow::commitChange()
{
- switch (featureLevel)
++#if !defined(__MINGW32__)
+ if (mDevice)
{
-+#if defined(ANGLE_ENABLE_D3D11_1)
- case D3D_FEATURE_LEVEL_11_1:
-+#endif
- case D3D_FEATURE_LEVEL_11_0: return GetMaximumStreamOutputInterleavedComponents(featureLevel) /
- GetMaximumStreamOutputBuffers(featureLevel);
-
-@@ -1054,6 +1204,7 @@ void GenerateCaps(ID3D11Device *device, ID3D11DeviceContext *deviceContext, gl::
-
- // Setting a large alignment forces uniform buffers to bind with zero offset
- caps->uniformBufferOffsetAlignment = static_cast<GLuint>(std::numeric_limits<GLint>::max());
-+#if defined(ANGLE_ENABLE_D3D11_1)
- ID3D11DeviceContext1 *deviceContext1 = d3d11::DynamicCastComObject<ID3D11DeviceContext1>(deviceContext);
-
- if (deviceContext1)
-@@ -1070,6 +1221,7 @@ void GenerateCaps(ID3D11Device *device, ID3D11DeviceContext *deviceContext, gl::
-
- SafeRelease(deviceContext1);
+ mDevice->Commit();
}
+#endif
-
- caps->maxCombinedUniformBlocks = caps->maxVertexUniformBlocks + caps->maxFragmentUniformBlocks;
- caps->maxCombinedVertexUniformComponents = (static_cast<GLint64>(caps->maxVertexUniformBlocks) * static_cast<GLint64>(caps->maxUniformBlockSize / 4)) +
+ }
+ }
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 c59808d..bf1c367 100644
+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
-@@ -206,7 +206,7 @@ egl::Error Renderer9::initialize()
+@@ -193,7 +193,7 @@ egl::Error Renderer9::initialize()
{
- TRACE_EVENT0("gpu", "D3d9Ex_QueryInterface");
+ 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
-@@ -314,7 +314,7 @@ egl::Error Renderer9::initialize()
+@@ -301,7 +301,7 @@ egl::Error Renderer9::initialize()
if (mD3d9Ex)
{
- TRACE_EVENT0("gpu", "mDevice_QueryInterface");
+ 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.1.4
+2.7.0.windows.1