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

