[PATCH vkd3d 5/8] vkd3d: Set Vulkan object names for NULL CBV resources.
Józef Kucia
joseph.kucia at gmail.com
Mon Mar 4 06:15:18 CST 2019
From: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
libs/vkd3d/resource.c | 9 +++++++++
libs/vkd3d/utils.c | 26 ++++++++++++++++++--------
libs/vkd3d/vkd3d_private.h | 2 ++
3 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c
index df3ab5d7953c..f197c93faaa3 100644
--- a/libs/vkd3d/resource.c
+++ b/libs/vkd3d/resource.c
@@ -2895,6 +2895,7 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources,
{
D3D12_HEAP_PROPERTIES heap_properties;
D3D12_RESOURCE_DESC buffer_desc;
+ VkResult vr;
HRESULT hr;
memset(null_resources, 0, sizeof(*null_resources));
@@ -2918,10 +2919,18 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources,
&buffer_desc, &null_resources->vk_uniform_buffer)))
goto fail;
+ if ((vr = vkd3d_set_vk_object_name_utf8(device, (uint64_t)null_resources->vk_uniform_buffer,
+ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, "NULL CBV buffer")) < 0)
+ WARN("Failed to set object name, vr %d.\n", vr);
+
if (FAILED(hr = vkd3d_allocate_buffer_memory(device, null_resources->vk_uniform_buffer,
&heap_properties, D3D12_HEAP_FLAG_NONE, &null_resources->vk_uniform_buffer_memory)))
goto fail;
+ if ((vr = vkd3d_set_vk_object_name_utf8(device, (uint64_t)null_resources->vk_uniform_buffer_memory,
+ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, "NULL CBV memory")) < 0)
+ WARN("Failed to set object name, vr %d.\n", vr);
+
return S_OK;
fail:
diff --git a/libs/vkd3d/utils.c b/libs/vkd3d/utils.c
index 27333f29415b..666319e46d90 100644
--- a/libs/vkd3d/utils.c
+++ b/libs/vkd3d/utils.c
@@ -643,11 +643,26 @@ HRESULT vkd3d_set_private_data_interface(struct vkd3d_private_store *store,
return hr;
}
-HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object,
- VkDebugReportObjectTypeEXT vk_object_type, const WCHAR *name)
+VkResult vkd3d_set_vk_object_name_utf8(struct d3d12_device *device, uint64_t vk_object,
+ VkDebugReportObjectTypeEXT vk_object_type, const char *name)
{
const struct vkd3d_vk_device_procs *vk_procs = &device->vk_procs;
VkDebugMarkerObjectNameInfoEXT info;
+
+ if (!device->vk_info.EXT_debug_marker)
+ return VK_SUCCESS;
+
+ info.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
+ info.pNext = NULL;
+ info.objectType = vk_object_type;
+ info.object = vk_object;
+ info.pObjectName = name;
+ return VK_CALL(vkDebugMarkerSetObjectNameEXT(device->vk_device, &info));
+}
+
+HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object,
+ VkDebugReportObjectTypeEXT vk_object_type, const WCHAR *name)
+{
char *name_utf8;
VkResult vr;
@@ -660,12 +675,7 @@ HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object
if (!(name_utf8 = vkd3d_strdup_w_utf8(name, device->wchar_size)))
return E_OUTOFMEMORY;
- info.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
- info.pNext = NULL;
- info.objectType = vk_object_type;
- info.object = vk_object;
- info.pObjectName = name_utf8;
- vr = VK_CALL(vkDebugMarkerSetObjectNameEXT(device->vk_device, &info));
+ vr = vkd3d_set_vk_object_name_utf8(device, vk_object, vk_object_type, name_utf8);
vkd3d_free(name_utf8);
diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h
index 9ddc50e9a25f..fa2c4609600c 100644
--- a/libs/vkd3d/vkd3d_private.h
+++ b/libs/vkd3d/vkd3d_private.h
@@ -1043,6 +1043,8 @@ static inline void vkd3d_set_thread_name(const char *name)
#endif
}
+VkResult vkd3d_set_vk_object_name_utf8(struct d3d12_device *device, uint64_t vk_object,
+ VkDebugReportObjectTypeEXT vk_object_type, const char *name) DECLSPEC_HIDDEN;
HRESULT vkd3d_set_vk_object_name(struct d3d12_device *device, uint64_t vk_object,
VkDebugReportObjectTypeEXT vk_object_type, const WCHAR *name) DECLSPEC_HIDDEN;
--
2.19.2
More information about the wine-devel
mailing list