From: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
---
Keeps the current version of ID3D12Device interface in single place.
---
libs/vkd3d/command.c | 60 ++++++++++++++++----------------------
libs/vkd3d/resource.c | 52 ++++++++++++++-------------------
libs/vkd3d/state.c | 25 +++++++---------
libs/vkd3d/vkd3d_private.h | 21 +++++++++++++
4 files changed, 79 insertions(+), 79 deletions(-)
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c
index a4659f701ebb..f66bbe90da40 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -885,7 +885,7 @@ static ULONG STDMETHODCALLTYPE d3d12_fence_Release(ID3D12Fence *iface)
ERR("Failed to destroy mutex, error %d.\n", rc);
vkd3d_free(fence);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -932,14 +932,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_fence_SetName(ID3D12Fence *iface, const W
return name ? S_OK : E_INVALIDARG;
}
-static HRESULT STDMETHODCALLTYPE d3d12_fence_GetDevice(ID3D12Fence *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_fence_GetDevice(ID3D12Fence *iface, REFIID iid, void **device)
{
struct d3d12_fence *fence = impl_from_ID3D12Fence(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&fence->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(fence->device, iid, device);
}
static UINT64 STDMETHODCALLTYPE d3d12_fence_GetCompletedValue(ID3D12Fence *iface)
@@ -1081,8 +1080,7 @@ static HRESULT d3d12_fence_init(struct d3d12_fence *fence, struct d3d12_device *
return hr;
}
- fence->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(fence->device = device);
return S_OK;
}
@@ -1517,7 +1515,7 @@ static ULONG STDMETHODCALLTYPE d3d12_command_allocator_Release(ID3D12CommandAllo
vkd3d_free(allocator);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -1563,14 +1561,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_command_allocator_SetName(ID3D12CommandAl
VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, name);
}
-static HRESULT STDMETHODCALLTYPE d3d12_command_allocator_GetDevice(ID3D12CommandAllocator *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_command_allocator_GetDevice(ID3D12CommandAllocator *iface, REFIID iid, void **device)
{
struct d3d12_command_allocator *allocator = impl_from_ID3D12CommandAllocator(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&allocator->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(allocator->device, iid, device);
}
static HRESULT STDMETHODCALLTYPE d3d12_command_allocator_Reset(ID3D12CommandAllocator *iface)
@@ -1727,8 +1724,7 @@ static HRESULT d3d12_command_allocator_init(struct d3d12_command_allocator *allo
allocator->current_command_list = NULL;
- allocator->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(allocator->device = device);
return S_OK;
}
@@ -2132,7 +2128,7 @@ static ULONG STDMETHODCALLTYPE d3d12_command_list_Release(ID3D12GraphicsCommandL
vkd3d_free(list);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -2177,14 +2173,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_command_list_SetName(ID3D12GraphicsComman
return name ? S_OK : E_INVALIDARG;
}
-static HRESULT STDMETHODCALLTYPE d3d12_command_list_GetDevice(ID3D12GraphicsCommandList1 *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_command_list_GetDevice(ID3D12GraphicsCommandList1 *iface, REFIID iid, void **device)
{
struct d3d12_command_list *list = impl_from_ID3D12GraphicsCommandList1(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&list->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(list->device, iid, device);
}
static D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE d3d12_command_list_GetType(ID3D12GraphicsCommandList1 *iface)
@@ -5118,8 +5113,7 @@ static HRESULT d3d12_command_list_init(struct d3d12_command_list *list, struct d
if (FAILED(hr = vkd3d_private_store_init(&list->private_store)))
return hr;
- list->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(list->device = device);
list->allocator = allocator;
@@ -5130,7 +5124,7 @@ static HRESULT d3d12_command_list_init(struct d3d12_command_list *list, struct d
else
{
vkd3d_private_store_destroy(&list->private_store);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return hr;
@@ -5228,7 +5222,7 @@ static ULONG STDMETHODCALLTYPE d3d12_command_queue_Release(ID3D12CommandQueue *i
vkd3d_free(command_queue);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -5284,14 +5278,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_command_queue_SetName(ID3D12CommandQueue
return hr;
}
-static HRESULT STDMETHODCALLTYPE d3d12_command_queue_GetDevice(ID3D12CommandQueue *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_command_queue_GetDevice(ID3D12CommandQueue *iface, REFIID iid, void **device)
{
struct d3d12_command_queue *command_queue = impl_from_ID3D12CommandQueue(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&command_queue->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(command_queue->device, iid, device);
}
static void STDMETHODCALLTYPE d3d12_command_queue_UpdateTileMappings(ID3D12CommandQueue *iface,
@@ -5713,8 +5706,7 @@ static HRESULT d3d12_command_queue_init(struct d3d12_command_queue *queue,
if (FAILED(hr = vkd3d_private_store_init(&queue->private_store)))
return hr;
- queue->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(queue->device = device);
return S_OK;
}
@@ -5816,7 +5808,7 @@ static ULONG STDMETHODCALLTYPE d3d12_command_signature_Release(ID3D12CommandSign
vkd3d_free((void *)signature->desc.pArgumentDescs);
vkd3d_free(signature);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -5861,14 +5853,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_command_signature_SetName(ID3D12CommandSi
return name ? S_OK : E_INVALIDARG;
}
-static HRESULT STDMETHODCALLTYPE d3d12_command_signature_GetDevice(ID3D12CommandSignature *iface,
- REFIID iid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_command_signature_GetDevice(ID3D12CommandSignature *iface, REFIID iid, void **device)
{
struct d3d12_command_signature *signature = impl_from_ID3D12CommandSignature(iface);
TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&signature->device->ID3D12Device_iface, iid, device);
+ return d3d12_device_query_interface(signature->device, iid, device);
}
static const struct ID3D12CommandSignatureVtbl d3d12_command_signature_vtbl =
@@ -5942,8 +5933,7 @@ HRESULT d3d12_command_signature_create(struct d3d12_device *device, const D3D12_
return hr;
}
- object->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(object->device = device);
TRACE("Created command signature %p.\n", object);
diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index 1e5f5f3c3c38..15dac12abeb6 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -174,7 +174,7 @@ static ULONG STDMETHODCALLTYPE d3d12_heap_Release(ID3D12Heap *iface)
vkd3d_free(heap);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -220,14 +220,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_heap_SetName(ID3D12Heap *iface, const WCH
VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, name);
}
-static HRESULT STDMETHODCALLTYPE d3d12_heap_GetDevice(ID3D12Heap *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_heap_GetDevice(ID3D12Heap *iface, REFIID iid, void **device)
{
struct d3d12_heap *heap = impl_from_ID3D12Heap(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&heap->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(heap->device, iid, device);
}
static D3D12_HEAP_DESC * STDMETHODCALLTYPE d3d12_heap_GetDesc(ID3D12Heap *iface,
@@ -416,8 +415,7 @@ static HRESULT d3d12_heap_init(struct d3d12_heap *heap,
return hr;
}
- heap->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(heap->device = device);
return S_OK;
}
@@ -929,7 +927,7 @@ static ULONG STDMETHODCALLTYPE d3d12_resource_AddRef(ID3D12Resource *iface)
{
struct d3d12_device *device = resource->device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(device);
d3d12_resource_incref(resource);
}
@@ -949,7 +947,7 @@ static ULONG STDMETHODCALLTYPE d3d12_resource_Release(ID3D12Resource *iface)
d3d12_resource_decref(resource);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -1007,14 +1005,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_resource_SetName(ID3D12Resource *iface, c
VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, name);
}
-static HRESULT STDMETHODCALLTYPE d3d12_resource_GetDevice(ID3D12Resource *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_resource_GetDevice(ID3D12Resource *iface, REFIID iid, void **device)
{
struct d3d12_resource *resource = impl_from_ID3D12Resource(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&resource->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(resource->device, iid, device);
}
static HRESULT STDMETHODCALLTYPE d3d12_resource_Map(ID3D12Resource *iface, UINT sub_resource,
@@ -1419,8 +1416,7 @@ static HRESULT d3d12_resource_init(struct d3d12_resource *resource, struct d3d12
return hr;
}
- resource->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(resource->device = device);
return S_OK;
}
@@ -1627,8 +1623,7 @@ HRESULT vkd3d_create_image_resource(ID3D12Device *device,
return hr;
}
- object->device = d3d12_device;
- ID3D12Device_AddRef(&d3d12_device->ID3D12Device_iface);
+ d3d12_device_add_ref(object->device = d3d12_device);
TRACE("Created resource %p.\n", object);
@@ -2953,7 +2948,7 @@ static ULONG STDMETHODCALLTYPE d3d12_descriptor_heap_Release(ID3D12DescriptorHea
vkd3d_free(heap);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -2998,14 +2993,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_descriptor_heap_SetName(ID3D12DescriptorH
return name ? S_OK : E_INVALIDARG;
}
-static HRESULT STDMETHODCALLTYPE d3d12_descriptor_heap_GetDevice(ID3D12DescriptorHeap *iface,
- REFIID riid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_descriptor_heap_GetDevice(ID3D12DescriptorHeap *iface, REFIID iid, void **device)
{
struct d3d12_descriptor_heap *heap = impl_from_ID3D12DescriptorHeap(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&heap->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(heap->device, iid, device);
}
static D3D12_DESCRIPTOR_HEAP_DESC * STDMETHODCALLTYPE d3d12_descriptor_heap_GetDesc(ID3D12DescriptorHeap *iface,
@@ -3075,8 +3069,7 @@ static HRESULT d3d12_descriptor_heap_init(struct d3d12_descriptor_heap *descript
if (FAILED(hr = vkd3d_private_store_init(&descriptor_heap->private_store)))
return hr;
- descriptor_heap->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(descriptor_heap->device = device);
return S_OK;
}
@@ -3088,7 +3081,7 @@ HRESULT d3d12_descriptor_heap_create(struct d3d12_device *device,
struct d3d12_descriptor_heap *object;
HRESULT hr;
- if (!(descriptor_size = ID3D12Device_GetDescriptorHandleIncrementSize(&device->ID3D12Device_iface, desc->Type)))
+ if (!(descriptor_size = d3d12_device_get_descriptor_handle_increment_size(device, desc->Type)))
{
WARN("No descriptor size for descriptor type %#x.\n", desc->Type);
return E_INVALIDARG;
@@ -3183,7 +3176,7 @@ static ULONG STDMETHODCALLTYPE d3d12_query_heap_Release(ID3D12QueryHeap *iface)
vkd3d_free(heap);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -3229,14 +3222,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_query_heap_SetName(ID3D12QueryHeap *iface
VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, name);
}
-static HRESULT STDMETHODCALLTYPE d3d12_query_heap_GetDevice(ID3D12QueryHeap *iface,
- REFIID iid, void **device)
+static HRESULT STDMETHODCALLTYPE d3d12_query_heap_GetDevice(ID3D12QueryHeap *iface, REFIID iid, void **device)
{
struct d3d12_query_heap *heap = impl_from_ID3D12QueryHeap(iface);
TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&heap->device->ID3D12Device_iface, iid, device);
+ return d3d12_device_query_interface(heap->device, iid, device);
}
static const struct ID3D12QueryHeapVtbl d3d12_query_heap_vtbl =
@@ -3345,7 +3337,7 @@ HRESULT d3d12_query_heap_create(struct d3d12_device *device, const D3D12_QUERY_H
return hresult_from_vk_result(vr);
}
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(device);
TRACE("Created query heap %p.\n", object);
diff --git a/libs/vkd3d/state.c b/libs/vkd3d/state.c
index eb2626d1aef1..514fdc3a74f2 100644
--- a/libs/vkd3d/state.c
+++ b/libs/vkd3d/state.c
@@ -118,7 +118,7 @@ static ULONG STDMETHODCALLTYPE d3d12_root_signature_Release(ID3D12RootSignature
vkd3d_private_store_destroy(&root_signature->private_store);
d3d12_root_signature_cleanup(root_signature, device);
vkd3d_free(root_signature);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -164,13 +164,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_root_signature_SetName(ID3D12RootSignatur
}
static HRESULT STDMETHODCALLTYPE d3d12_root_signature_GetDevice(ID3D12RootSignature *iface,
- REFIID riid, void **device)
+ REFIID iid, void **device)
{
struct d3d12_root_signature *root_signature = impl_from_ID3D12RootSignature(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&root_signature->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(root_signature->device, iid, device);
}
static const struct ID3D12RootSignatureVtbl d3d12_root_signature_vtbl =
@@ -982,8 +982,7 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa
if (FAILED(hr = vkd3d_private_store_init(&root_signature->private_store)))
goto fail;
- root_signature->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(root_signature->device = device);
return S_OK;
@@ -1331,7 +1330,7 @@ static ULONG STDMETHODCALLTYPE d3d12_pipeline_state_Release(ID3D12PipelineState
vkd3d_free(state);
- ID3D12Device_Release(&device->ID3D12Device_iface);
+ d3d12_device_release(device);
}
return refcount;
@@ -1383,13 +1382,13 @@ static HRESULT STDMETHODCALLTYPE d3d12_pipeline_state_SetName(ID3D12PipelineStat
}
static HRESULT STDMETHODCALLTYPE d3d12_pipeline_state_GetDevice(ID3D12PipelineState *iface,
- REFIID riid, void **device)
+ REFIID iid, void **device)
{
struct d3d12_pipeline_state *state = impl_from_ID3D12PipelineState(iface);
- TRACE("iface %p, riid %s, device %p.\n", iface, debugstr_guid(riid), device);
+ TRACE("iface %p, iid %s, device %p.\n", iface, debugstr_guid(iid), device);
- return ID3D12Device_QueryInterface(&state->device->ID3D12Device_iface, riid, device);
+ return d3d12_device_query_interface(state->device, iid, device);
}
static HRESULT STDMETHODCALLTYPE d3d12_pipeline_state_GetCachedBlob(ID3D12PipelineState *iface,
@@ -1646,8 +1645,7 @@ static HRESULT d3d12_pipeline_state_init_compute(struct d3d12_pipeline_state *st
}
state->vk_bind_point = VK_PIPELINE_BIND_POINT_COMPUTE;
- state->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(state->device = device);
return S_OK;
}
@@ -2550,8 +2548,7 @@ static HRESULT d3d12_pipeline_state_init_graphics(struct d3d12_pipeline_state *s
goto fail;
state->vk_bind_point = VK_PIPELINE_BIND_POINT_GRAPHICS;
- state->device = device;
- ID3D12Device_AddRef(&device->ID3D12Device_iface);
+ d3d12_device_add_ref(state->device = device);
return S_OK;
diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h
index 2d31cacc101e..e01e00503081 100644
--- a/libs/vkd3d/vkd3d_private.h
+++ b/libs/vkd3d/vkd3d_private.h
@@ -1036,6 +1036,27 @@ void d3d12_device_mark_as_removed(struct d3d12_device *device, HRESULT reason,
const char *message, ...) VKD3D_PRINTF_FUNC(3, 4) DECLSPEC_HIDDEN;
struct d3d12_device *unsafe_impl_from_ID3D12Device(ID3D12Device *iface) DECLSPEC_HIDDEN;
+static inline HRESULT d3d12_device_query_interface(struct d3d12_device *device, REFIID iid, void **object)
+{
+ return ID3D12Device_QueryInterface(&device->ID3D12Device_iface, iid, object);
+}
+
+static inline ULONG d3d12_device_add_ref(struct d3d12_device *device)
+{
+ return ID3D12Device_AddRef(&device->ID3D12Device_iface);
+}
+
+static inline ULONG d3d12_device_release(struct d3d12_device *device)
+{
+ return ID3D12Device_Release(&device->ID3D12Device_iface);
+}
+
+static inline unsigned int d3d12_device_get_descriptor_handle_increment_size(struct d3d12_device *device,
+ D3D12_DESCRIPTOR_HEAP_TYPE descriptor_type)
+{
+ return ID3D12Device_GetDescriptorHandleIncrementSize(&device->ID3D12Device_iface, descriptor_type);
+}
+
/* utils */
struct vkd3d_format
{
--
2.21.0