From 212f5ba1f3169c76ee8678565aba931a51c91a9b Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 8 Nov 2019 11:06:15 +0100 Subject: [PATCH] [dxgi] Query DXVK instance from DXGI factory, not the adapter --- src/dxgi/dxgi_adapter.cpp | 7 ++++++- src/dxgi/dxgi_adapter.h | 2 ++ src/dxgi/dxgi_factory.h | 4 ++++ src/dxgi/dxgi_interfaces.h | 4 +++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/dxgi/dxgi_adapter.cpp b/src/dxgi/dxgi_adapter.cpp index f38df5de..2cad802f 100644 --- a/src/dxgi/dxgi_adapter.cpp +++ b/src/dxgi/dxgi_adapter.cpp @@ -41,7 +41,7 @@ namespace dxvk { VkInstance* pInstance, VkPhysicalDevice* pPhysDev) { auto adapter = m_adapter->GetDXVKAdapter(); - auto instance = adapter->instance(); + auto instance = m_adapter->GetDXVKInstance(); if (pInstance) *pInstance = instance->handle(); @@ -370,5 +370,10 @@ namespace dxvk { Rc STDMETHODCALLTYPE DxgiAdapter::GetDXVKAdapter() { return m_adapter; } + + + Rc STDMETHODCALLTYPE DxgiAdapter::GetDXVKInstance() { + return m_factory->GetDXVKInstance(); + } } diff --git a/src/dxgi/dxgi_adapter.h b/src/dxgi/dxgi_adapter.h index 91af68af..ecc2e7d8 100644 --- a/src/dxgi/dxgi_adapter.h +++ b/src/dxgi/dxgi_adapter.h @@ -101,6 +101,8 @@ namespace dxvk { Rc STDMETHODCALLTYPE GetDXVKAdapter() final; + Rc STDMETHODCALLTYPE GetDXVKInstance() final; + private: Com m_factory; diff --git a/src/dxgi/dxgi_factory.h b/src/dxgi/dxgi_factory.h index 3a5123a8..d74c4747 100644 --- a/src/dxgi/dxgi_factory.h +++ b/src/dxgi/dxgi_factory.h @@ -118,6 +118,10 @@ namespace dxvk { void* pFeatureSupportData, UINT FeatureSupportDataSize) final; + Rc GetDXVKInstance() const { + return m_instance; + } + const DxgiOptions* GetOptions() const { return &m_options; } diff --git a/src/dxgi/dxgi_interfaces.h b/src/dxgi/dxgi_interfaces.h index 104d9d6a..9d298d7f 100644 --- a/src/dxgi/dxgi_interfaces.h +++ b/src/dxgi/dxgi_interfaces.h @@ -85,7 +85,9 @@ IDXGIDXVKAdapter : public IDXGIAdapter3 { static const GUID guid; virtual dxvk::Rc STDMETHODCALLTYPE GetDXVKAdapter() = 0; - + + virtual dxvk::Rc STDMETHODCALLTYPE GetDXVKInstance() = 0; + };