From 1bc0b51262117b94e2c29ecd4dbba1480bc97938 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 13 Jun 2019 04:37:35 +0200 Subject: [PATCH] [d3d11] Implement IDXGISurface2 for ID3D11Texture1D --- src/d3d11/d3d11_texture.cpp | 9 +++++++++ src/d3d11/d3d11_texture.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/d3d11/d3d11_texture.cpp b/src/d3d11/d3d11_texture.cpp index 24179f68..494f0581 100644 --- a/src/d3d11/d3d11_texture.cpp +++ b/src/d3d11/d3d11_texture.cpp @@ -758,6 +758,7 @@ namespace dxvk { const D3D11_COMMON_TEXTURE_DESC* pDesc) : m_texture (pDevice, pDesc, D3D11_RESOURCE_DIMENSION_TEXTURE1D), m_interop (this, &m_texture), + m_surface (this, &m_texture), m_resource(this), m_d3d10 (this, pDevice->GetD3D10Interface()) { @@ -790,6 +791,14 @@ namespace dxvk { return S_OK; } + if (m_surface.isSurfaceCompatible() + && (riid == __uuidof(IDXGISurface) + || riid == __uuidof(IDXGISurface1) + || riid == __uuidof(IDXGISurface2))) { + *ppvObject = ref(&m_surface); + return S_OK; + } + if (riid == __uuidof(IDXGIObject) || riid == __uuidof(IDXGIDeviceSubObject) || riid == __uuidof(IDXGIResource) diff --git a/src/d3d11/d3d11_texture.h b/src/d3d11/d3d11_texture.h index 33bff15d..17618d23 100644 --- a/src/d3d11/d3d11_texture.h +++ b/src/d3d11/d3d11_texture.h @@ -402,6 +402,7 @@ namespace dxvk { D3D11CommonTexture m_texture; D3D11VkInteropSurface m_interop; + D3D11DXGISurface m_surface; D3D11DXGIResource m_resource; D3D10Texture1D m_d3d10;