Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/doitsujin/dxvk.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gofman <gofmanp@gmail.com>2023-09-13 23:42:48 +0300
committerJoshie <joshua@froggi.es>2023-09-14 00:29:25 +0300
commitf93cfbc26af61b78819941fb93aecc4d3f75b04c (patch)
treec16a56dd99c5b5fdecd86c1767ebd07ec1eafd33
parentc113b791a148e049171b62cd87d15cc2e61bf894 (diff)
[d3d11] Pass device directly to D3D11DXGIKeyedMutex
-rw-r--r--src/d3d11/d3d11_buffer.cpp2
-rw-r--r--src/d3d11/d3d11_resource.cpp14
-rw-r--r--src/d3d11/d3d11_resource.h6
-rw-r--r--src/d3d11/d3d11_texture.cpp10
4 files changed, 17 insertions, 15 deletions
diff --git a/src/d3d11/d3d11_buffer.cpp b/src/d3d11/d3d11_buffer.cpp
index 11087a97..6d035fdb 100644
--- a/src/d3d11/d3d11_buffer.cpp
+++ b/src/d3d11/d3d11_buffer.cpp
@@ -12,7 +12,7 @@ namespace dxvk {
const D3D11_ON_12_RESOURCE_INFO* p11on12Info)
: D3D11DeviceChild<ID3D11Buffer>(pDevice),
m_desc (*pDesc),
- m_resource (this),
+ m_resource (this, pDevice),
m_d3d10 (this) {
DxvkBufferCreateInfo info;
info.flags = 0;
diff --git a/src/d3d11/d3d11_resource.cpp b/src/d3d11/d3d11_resource.cpp
index 92b2d658..db3c0f10 100644
--- a/src/d3d11/d3d11_resource.cpp
+++ b/src/d3d11/d3d11_resource.cpp
@@ -9,11 +9,10 @@
namespace dxvk {
D3D11DXGIKeyedMutex::D3D11DXGIKeyedMutex(
- ID3D11Resource* pResource)
- : m_resource(pResource) {
- Com<ID3D11Device> device;
- m_resource->GetDevice(&device);
- m_device = static_cast<D3D11Device*>(device.ptr());
+ ID3D11Resource* pResource,
+ D3D11Device* pDevice)
+ : m_resource(pResource),
+ m_device(pDevice) {
m_supported = m_device->GetDXVKDevice()->features().khrWin32KeyedMutex
&& m_device->GetDXVKDevice()->vkd()->wine_vkAcquireKeyedMutex != nullptr
@@ -120,9 +119,10 @@ namespace dxvk {
}
D3D11DXGIResource::D3D11DXGIResource(
- ID3D11Resource* pResource)
+ ID3D11Resource* pResource,
+ D3D11Device* pDevice)
: m_resource(pResource),
- m_keyedMutex(pResource) {
+ m_keyedMutex(pResource, pDevice) {
}
diff --git a/src/d3d11/d3d11_resource.h b/src/d3d11/d3d11_resource.h
index 8dc73220..8085031f 100644
--- a/src/d3d11/d3d11_resource.h
+++ b/src/d3d11/d3d11_resource.h
@@ -30,7 +30,8 @@ namespace dxvk {
public:
D3D11DXGIKeyedMutex(
- ID3D11Resource* pResource);
+ ID3D11Resource* pResource,
+ D3D11Device* pDevice);
~D3D11DXGIKeyedMutex();
@@ -88,7 +89,8 @@ namespace dxvk {
public:
D3D11DXGIResource(
- ID3D11Resource* pResource);
+ ID3D11Resource* pResource,
+ D3D11Device* pDevice);
~D3D11DXGIResource();
diff --git a/src/d3d11/d3d11_texture.cpp b/src/d3d11/d3d11_texture.cpp
index 7a8c6043..b75908e1 100644
--- a/src/d3d11/d3d11_texture.cpp
+++ b/src/d3d11/d3d11_texture.cpp
@@ -1099,7 +1099,7 @@ namespace dxvk {
m_texture (this, pDevice, pDesc, p11on12Info, D3D11_RESOURCE_DIMENSION_TEXTURE1D, 0, VK_NULL_HANDLE, nullptr),
m_interop (this, &m_texture),
m_surface (this, &m_texture),
- m_resource(this),
+ m_resource(this, pDevice),
m_d3d10 (this) {
}
@@ -1205,7 +1205,7 @@ namespace dxvk {
m_texture (this, pDevice, pDesc, p11on12Info, D3D11_RESOURCE_DIMENSION_TEXTURE2D, 0, VK_NULL_HANDLE, hSharedHandle),
m_interop (this, &m_texture),
m_surface (this, &m_texture),
- m_resource (this),
+ m_resource (this, pDevice),
m_d3d10 (this),
m_swapChain (nullptr) {
}
@@ -1220,7 +1220,7 @@ namespace dxvk {
m_texture (this, pDevice, pDesc, nullptr, D3D11_RESOURCE_DIMENSION_TEXTURE2D, DxgiUsage, vkImage, nullptr),
m_interop (this, &m_texture),
m_surface (this, &m_texture),
- m_resource (this),
+ m_resource (this, pDevice),
m_d3d10 (this),
m_swapChain (nullptr) {
@@ -1236,7 +1236,7 @@ namespace dxvk {
m_texture (this, pDevice, pDesc, nullptr, D3D11_RESOURCE_DIMENSION_TEXTURE2D, DxgiUsage, VK_NULL_HANDLE, nullptr),
m_interop (this, &m_texture),
m_surface (this, &m_texture),
- m_resource (this),
+ m_resource (this, pDevice),
m_d3d10 (this),
m_swapChain (pSwapChain) {
@@ -1384,7 +1384,7 @@ namespace dxvk {
: D3D11DeviceChild<ID3D11Texture3D1>(pDevice),
m_texture (this, pDevice, pDesc, p11on12Info, D3D11_RESOURCE_DIMENSION_TEXTURE3D, 0, VK_NULL_HANDLE, nullptr),
m_interop (this, &m_texture),
- m_resource(this),
+ m_resource(this, pDevice),
m_d3d10 (this) {
}