From ddb425c5cba63e21b293c85a2ae29d7e7aad0605 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Tue, 10 May 2022 12:26:41 +0200 Subject: [PATCH] vkd3d: Add support for tag logging in breadcrumbs. To keep things simple, outer code is responsible for keeping string alive. Intended to be used for RTPSO entry point name debugging. Signed-off-by: Hans-Kristian Arntzen --- libs/vkd3d/breadcrumbs.c | 6 ++++++ libs/vkd3d/vkd3d_private.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/libs/vkd3d/breadcrumbs.c b/libs/vkd3d/breadcrumbs.c index 6fa08137..8a102132 100644 --- a/libs/vkd3d/breadcrumbs.c +++ b/libs/vkd3d/breadcrumbs.c @@ -82,6 +82,8 @@ static const char *vkd3d_breadcrumb_command_type_to_str(enum vkd3d_breadcrumb_co return "root_desc"; case VKD3D_BREADCRUMB_COMMAND_ROOT_CONST: return "root_const"; + case VKD3D_BREADCRUMB_COMMAND_TAG: + return "tag"; default: return "?"; @@ -306,6 +308,10 @@ static void vkd3d_breadcrumb_tracer_report_command_list( { ERR(" Set arg: %"PRIu64" (#%"PRIx64")\n", cmd->word_64bit, cmd->word_64bit); } + else if (cmd->type == VKD3D_BREADCRUMB_COMMAND_TAG) + { + ERR(" Tag: %s\n", cmd->tag); + } else { ERR(" Command: %s\n", vkd3d_breadcrumb_command_type_to_str(cmd->type)); diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h index 4c15cbbf..5a9031da 100644 --- a/libs/vkd3d/vkd3d_private.h +++ b/libs/vkd3d/vkd3d_private.h @@ -2558,6 +2558,7 @@ enum vkd3d_breadcrumb_command_type VKD3D_BREADCRUMB_COMMAND_IBO, VKD3D_BREADCRUMB_COMMAND_ROOT_DESC, VKD3D_BREADCRUMB_COMMAND_ROOT_CONST, + VKD3D_BREADCRUMB_COMMAND_TAG, }; #ifdef VKD3D_ENABLE_BREADCRUMBS @@ -2581,6 +2582,8 @@ struct vkd3d_breadcrumb_command uint32_t word_32bit; uint64_t word_64bit; uint32_t count; + /* Pointer must remain alive. */ + const char *tag; }; };