Merge branch 'turnip/fix/u_trace-mem-leak' into 'main'

tu: Don't leak pre_chain.rp_trace

See merge request mesa/mesa!41390
This commit is contained in:
Danylo Piliaiev 2026-05-07 23:48:46 +00:00
commit d2825d6bcf
2 changed files with 8 additions and 1 deletions

View file

@ -4109,6 +4109,7 @@ tu_create_cmd_buffer(struct vk_command_pool *pool,
u_trace_init(&cmd_buffer->trace, &device->trace_context);
u_trace_init(&cmd_buffer->rp_trace, &device->trace_context);
u_trace_init(&cmd_buffer->pre_chain.rp_trace, &device->trace_context);
cmd_buffer->trace_renderpass_start =
u_trace_begin_iterator(&cmd_buffer->rp_trace);
new (&cmd_buffer->autotune_ctx) tu_autotune::cmd_buf_ctx(*device->autotune);
@ -4159,6 +4160,7 @@ tu_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
u_trace_fini(&cmd_buffer->trace);
u_trace_fini(&cmd_buffer->rp_trace);
u_trace_fini(&cmd_buffer->pre_chain.rp_trace);
cmd_buffer->autotune_ctx.~cmd_buf_ctx();
@ -4267,6 +4269,9 @@ tu_reset_cmd_buffer(struct vk_command_buffer *vk_cmd_buffer,
u_trace_init(&cmd_buffer->trace, &cmd_buffer->device->trace_context);
u_trace_fini(&cmd_buffer->rp_trace);
u_trace_init(&cmd_buffer->rp_trace, &cmd_buffer->device->trace_context);
u_trace_fini(&cmd_buffer->pre_chain.rp_trace);
u_trace_init(&cmd_buffer->pre_chain.rp_trace,
&cmd_buffer->device->trace_context);
cmd_buffer->trace_renderpass_start =
u_trace_begin_iterator(&cmd_buffer->rp_trace);

View file

@ -796,11 +796,13 @@ u_trace_init(struct u_trace *ut, struct u_trace_context *utctx)
void
u_trace_move(struct u_trace *dst, struct u_trace *src)
{
u_trace_fini(dst);
dst->utctx = src->utctx;
list_replace(&src->trace_chunks, &dst->trace_chunks);
dst->num_traces = src->num_traces;
src->num_traces = 0;
list_delinit(&src->trace_chunks);
list_inithead(&src->trace_chunks);
}
void