diff --git a/.pick_status.json b/.pick_status.json index 806f2e7803e..3088357ed26 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -104,7 +104,7 @@ "description": "anv: reuse object string for RMV token", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "e1b9a6e4f3c1702d68866bec2799b1216812595a", "notes": null diff --git a/src/intel/vulkan/layers/anv_rmv_layer.c b/src/intel/vulkan/layers/anv_rmv_layer.c index 2e36e5d4012..3b91da9c2d4 100644 --- a/src/intel/vulkan/layers/anv_rmv_layer.c +++ b/src/intel/vulkan/layers/anv_rmv_layer.c @@ -100,19 +100,14 @@ VkResult anv_rmv_SetDebugUtilsObjectNameEXT( return VK_SUCCESS; } - size_t name_len = strlen(pNameInfo->pObjectName); - char *name_buf = malloc(name_len + 1); - if (!name_buf) { - /* - * Silently fail, so that applications may still continue if possible. - */ - return VK_SUCCESS; - } - strcpy(name_buf, pNameInfo->pObjectName); + struct vk_object_base *object = + vk_object_base_from_u64_handle(pNameInfo->objectHandle, + pNameInfo->objectType); simple_mtx_lock(&device->vk.memory_trace_data.token_mtx); struct vk_rmv_userdata_token token; - token.name = name_buf; + token.name = vk_strdup(&device->vk.alloc, object->object_name, + VK_SYSTEM_ALLOCATION_SCOPE_DEVICE); token.resource_id = vk_rmv_get_resource_id_locked(&device->vk, pNameInfo->objectHandle); vk_rmv_emit_token(&device->vk.memory_trace_data, VK_RMV_TOKEN_TYPE_USERDATA, &token);