mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 19:40:10 +01:00
tu: Add info about debug options to command buffer tracepoint
That way it's much easier to understand which debug options are applied to specific process. Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33491>
This commit is contained in:
parent
d9f054320a
commit
85b5eec159
6 changed files with 39 additions and 4 deletions
|
|
@ -362,3 +362,9 @@ ir3_get_compiler_options(struct ir3_compiler *compiler)
|
|||
{
|
||||
return &compiler->nir_options;
|
||||
}
|
||||
|
||||
const char *
|
||||
ir3_shader_debug_as_string()
|
||||
{
|
||||
return debug_dump_flags(shader_debug_options, ir3_shader_debug);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -428,6 +428,10 @@ ir3_shader_debug_hash_key()
|
|||
IR3_DBG_SHADER_INTERNAL | IR3_DBG_SCHEDMSGS | IR3_DBG_RAMSGS));
|
||||
}
|
||||
|
||||
/* Returns a pointer to internal static tmp buffer. */
|
||||
const char *
|
||||
ir3_shader_debug_as_string(void);
|
||||
|
||||
ENDC;
|
||||
|
||||
#endif /* IR3_COMPILER_H_ */
|
||||
|
|
|
|||
|
|
@ -2678,7 +2678,11 @@ tu_BeginCommandBuffer(VkCommandBuffer commandBuffer,
|
|||
|
||||
/* setup initial configuration into command buffer */
|
||||
if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY) {
|
||||
trace_start_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->cs, cmd_buffer);
|
||||
if (u_trace_enabled(&cmd_buffer->device->trace_context)) {
|
||||
trace_start_cmd_buffer(&cmd_buffer->trace, &cmd_buffer->cs,
|
||||
cmd_buffer, tu_env_debug_as_string(),
|
||||
ir3_shader_debug_as_string());
|
||||
}
|
||||
|
||||
switch (cmd_buffer->queue_family_index) {
|
||||
case TU_QUEUE_GENERAL:
|
||||
|
|
@ -2691,8 +2695,13 @@ tu_BeginCommandBuffer(VkCommandBuffer commandBuffer,
|
|||
const bool pass_continue =
|
||||
pBeginInfo->flags & VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
|
||||
|
||||
trace_start_cmd_buffer(&cmd_buffer->trace,
|
||||
pass_continue ? &cmd_buffer->draw_cs : &cmd_buffer->cs, cmd_buffer);
|
||||
if (u_trace_enabled(&cmd_buffer->device->trace_context)) {
|
||||
trace_start_cmd_buffer(
|
||||
&cmd_buffer->trace,
|
||||
pass_continue ? &cmd_buffer->draw_cs : &cmd_buffer->cs,
|
||||
cmd_buffer, tu_env_debug_as_string(),
|
||||
ir3_shader_debug_as_string());
|
||||
}
|
||||
|
||||
assert(pBeginInfo->pInheritanceInfo);
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,9 @@ def begin_end_tp(name, args=[], tp_struct=None, tp_print=None,
|
|||
tp_markers='tu_cs_trace_end' if marker_tp else None)
|
||||
|
||||
begin_end_tp('cmd_buffer',
|
||||
args=[ArgStruct(type='const struct tu_cmd_buffer *', var='cmd')],
|
||||
args=[ArgStruct(type='const struct tu_cmd_buffer *', var='cmd'),
|
||||
Arg(type='str', var='TUdebugFlags', c_format='%s', length_arg='96', copy_func='strncpy'),
|
||||
Arg(type='str', var='IR3debugFlags', c_format='%s', length_arg='96', copy_func='strncpy')],
|
||||
tp_struct=[Arg(type='const char *', name='appName', var='cmd->device->instance->vk.app_info.app_name', c_format='%s'),
|
||||
Arg(type='const char *', name='engineName', var='cmd->device->instance->vk.app_info.engine_name', c_format='%s'),
|
||||
Arg(type='VkCommandBufferLevel', name='level', var='cmd->vk.level', c_format='%s', to_prim_type='vk_CommandBufferLevel_to_str({})'),
|
||||
|
|
|
|||
|
|
@ -153,6 +153,16 @@ tu_env_init(void)
|
|||
call_once(&once, tu_env_init_once);
|
||||
}
|
||||
|
||||
const char *
|
||||
tu_env_debug_as_string(void)
|
||||
{
|
||||
static thread_local char debug_string[96];
|
||||
dump_debug_control_string(debug_string, sizeof(debug_string),
|
||||
tu_debug_options,
|
||||
tu_env.debug.load(std::memory_order_acquire));
|
||||
return debug_string;
|
||||
}
|
||||
|
||||
void PRINTFLIKE(3, 4)
|
||||
__tu_finishme(const char *file, int line, const char *format, ...)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -82,6 +82,10 @@ extern struct tu_env tu_env;
|
|||
void
|
||||
tu_env_init(void);
|
||||
|
||||
/* Returns a pointer to the internal static tmp buffer, do not free. */
|
||||
const char *
|
||||
tu_env_debug_as_string(void);
|
||||
|
||||
/* Whenever we generate an error, pass it through this function. Useful for
|
||||
* debugging, where we can break on it. Only call at error site, not when
|
||||
* propagating errors. Might be useful to plug in a stack trace here.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue