From 82656de0297bd224f3704b5db71d4e04e6045111 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 4 Apr 2023 14:58:48 -0700 Subject: [PATCH] zink: Add debug names to our command buffers. This will be nice when debugging multiple sources of command buffers on a system to see who's responsible. Part-of: --- src/gallium/drivers/zink/zink_batch.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index c7e746829ed..af48abc02f9 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -328,6 +328,22 @@ zink_batch_state_destroy(struct zink_screen *screen, struct zink_batch_state *bs ralloc_free(bs); } +static void +zink_label_cmd_buffer(struct zink_context *ctx, VkDevice device, VkCommandBuffer cmd_buffer, const char *name) +{ + struct zink_screen *screen = zink_screen(ctx->base.screen); + + VkDebugUtilsObjectNameInfoEXT name_info = { + .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, + .pNext = NULL, + .objectType = VK_OBJECT_TYPE_COMMAND_BUFFER, + .objectHandle = (uintptr_t)cmd_buffer, + .pObjectName = name, + }; + + VKSCR(SetDebugUtilsObjectNameEXT)(device, &name_info); +} + /* batch states are created: * - on context creation * - dynamically up to a threshold if no free ones are available @@ -385,6 +401,9 @@ create_batch_state(struct zink_context *ctx) } ); + zink_label_cmd_buffer(ctx, screen->dev, cmdbufs[0], "zink cmdbuf"); + zink_label_cmd_buffer(ctx, screen->dev, cmdbufs[1], "zink barrier cmdbuf"); + #define SET_CREATE_OR_FAIL(ptr) \ if (!_mesa_set_init(ptr, bs, _mesa_hash_pointer, _mesa_key_pointer_equal)) \ goto fail