From c095fab1c9a86bf35d92bcc948f5460ef51f9f9b Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sun, 15 Oct 2017 21:50:45 +0200 Subject: [PATCH] [dxvk] Fixed interface queries --- src/dxgi/dxgi_adapter.cpp | 4 +++- src/dxgi/dxgi_device.cpp | 4 +++- src/dxgi/dxgi_factory.cpp | 2 ++ src/dxgi/dxgi_output.cpp | 6 +++--- src/dxgi/dxgi_swapchain.cpp | 2 ++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index bdff44d4..97e6e174 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -24,8 +24,10 @@ namespace dxvk { HRESULT DxgiAdapter::QueryInterface( REFIID riid, void **ppvObject) { - COM_QUERY_IFACE(riid, ppvObject, IDXVKAdapter); + COM_QUERY_IFACE(riid, ppvObject, IUnknown); + COM_QUERY_IFACE(riid, ppvObject, IDXGIObject); COM_QUERY_IFACE(riid, ppvObject, IDXGIAdapter); + COM_QUERY_IFACE(riid, ppvObject, IDXVKAdapter); Logger::warn("DxgiAdapter::QueryInterface: Unknown interface query"); return E_NOINTERFACE; diff --git a/src/dxgi/dxgi_device.cpp b/src/dxgi/dxgi_device.cpp index d6bd5c8a..15d18904 100644 --- a/src/dxgi/dxgi_device.cpp +++ b/src/dxgi/dxgi_device.cpp @@ -16,8 +16,10 @@ namespace dxvk { HRESULT DxgiDevice::QueryInterface(REFIID riid, void** ppvObject) { - COM_QUERY_IFACE(riid, ppvObject, IDXVKDevice); + COM_QUERY_IFACE(riid, ppvObject, IUnknown); + COM_QUERY_IFACE(riid, ppvObject, IDXGIObject); COM_QUERY_IFACE(riid, ppvObject, IDXGIDevice); + COM_QUERY_IFACE(riid, ppvObject, IDXVKDevice); if (m_layer != nullptr) return m_layer->QueryInterface(riid, ppvObject); diff --git a/src/dxgi/dxgi_factory.cpp b/src/dxgi/dxgi_factory.cpp index 0943ecfd..217dd28d 100644 --- a/src/dxgi/dxgi_factory.cpp +++ b/src/dxgi/dxgi_factory.cpp @@ -18,6 +18,8 @@ namespace dxvk { HRESULT DxgiFactory::QueryInterface( REFIID riid, void** ppvObject) { + COM_QUERY_IFACE(riid, ppvObject, IUnknown); + COM_QUERY_IFACE(riid, ppvObject, IDXGIObject); COM_QUERY_IFACE(riid, ppvObject, IDXGIFactory); Logger::warn("DxgiFactory::QueryInterface: Unknown interface query"); diff --git a/src/dxgi/dxgi_output.cpp b/src/dxgi/dxgi_output.cpp index 4f027372..862460da 100644 --- a/src/dxgi/dxgi_output.cpp +++ b/src/dxgi/dxgi_output.cpp @@ -23,9 +23,9 @@ namespace dxvk { } - HRESULT DxgiOutput::QueryInterface( - REFIID riid, - void **ppvObject) { + HRESULT DxgiOutput::QueryInterface(REFIID riid, void** ppvObject) { + COM_QUERY_IFACE(riid, ppvObject, IUnknown); + COM_QUERY_IFACE(riid, ppvObject, IDXGIObject); COM_QUERY_IFACE(riid, ppvObject, IDXGIOutput); Logger::warn("DxgiOutput::QueryInterface: Unknown interface query"); diff --git a/src/dxgi/dxgi_swapchain.cpp b/src/dxgi/dxgi_swapchain.cpp index f4b54dc5..8817faa1 100644 --- a/src/dxgi/dxgi_swapchain.cpp +++ b/src/dxgi/dxgi_swapchain.cpp @@ -19,6 +19,8 @@ namespace dxvk { HRESULT DxgiSwapChain::QueryInterface(REFIID riid, void** ppvObject) { + COM_QUERY_IFACE(riid, ppvObject, IUnknown); + COM_QUERY_IFACE(riid, ppvObject, IDXGIObject); COM_QUERY_IFACE(riid, ppvObject, IDXGISwapChain); Logger::warn("DxgiSwapChain::QueryInterface: Unknown interface query");