radv/sqtt: Add and enable basic EXT_debug_utils support.

Only CommandBuffer markers for now.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14645>
This commit is contained in:
Tatsuyuki Ishi 2022-01-21 11:20:31 +09:00 committed by Marge Bot
parent a97ec3eb13
commit 89f376b506
2 changed files with 35 additions and 1 deletions

View file

@ -21,6 +21,7 @@
* IN THE SOFTWARE.
*/
#include "vk_common_entrypoints.h"
#include "radv_private.h"
#include "radv_shader.h"
@ -807,6 +808,35 @@ sqtt_DebugMarkerSetObjectTagEXT(VkDevice device, const VkDebugMarkerObjectTagInf
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL
sqtt_CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,
const VkDebugUtilsLabelEXT *pLabelInfo)
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
radv_write_user_event_marker(cmd_buffer, UserEventPush, pLabelInfo->pLabelName);
vk_common_CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
}
VKAPI_ATTR void VKAPI_CALL
sqtt_CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
radv_write_user_event_marker(cmd_buffer, UserEventPop, NULL);
vk_common_CmdEndDebugUtilsLabelEXT(commandBuffer);
}
VKAPI_ATTR void VKAPI_CALL
sqtt_CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,
const VkDebugUtilsLabelEXT *pLabelInfo)
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
radv_write_user_event_marker(cmd_buffer, UserEventTrigger, pLabelInfo->pLabelName);
vk_common_CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
}
/* Pipelines */
static enum rgp_hardware_stages
radv_mesa_to_rgp_shader_stage(struct radv_pipeline *pipeline, gl_shader_stage stage)

View file

@ -355,6 +355,7 @@ static const struct vk_instance_extension_table radv_instance_extensions_support
.KHR_external_semaphore_capabilities = true,
.KHR_get_physical_device_properties2 = true,
.EXT_debug_report = true,
/* EXT_debug_utils is exposed only if thread trace is enabled. See radv_CreateInstance */
#ifdef RADV_USE_WSI_PLATFORM
.KHR_get_surface_capabilities2 = true,
@ -992,7 +993,10 @@ radv_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
struct vk_instance_dispatch_table dispatch_table;
vk_instance_dispatch_table_from_entrypoints(&dispatch_table, &radv_instance_entrypoints, true);
vk_instance_dispatch_table_from_entrypoints(&dispatch_table, &wsi_instance_entrypoints, false);
result = vk_instance_init(&instance->vk, &radv_instance_extensions_supported, &dispatch_table,
struct vk_instance_extension_table extensions_supported = radv_instance_extensions_supported;
if (radv_thread_trace_enabled())
extensions_supported.EXT_debug_utils = true;
result = vk_instance_init(&instance->vk, &extensions_supported, &dispatch_table,
pCreateInfo, pAllocator);
if (result != VK_SUCCESS) {
vk_free(pAllocator, instance);