diff --git a/src/gallium/auxiliary/driver_trace/tr_context.c b/src/gallium/auxiliary/driver_trace/tr_context.c index 5503f86ddfa..79f95c97b09 100644 --- a/src/gallium/auxiliary/driver_trace/tr_context.c +++ b/src/gallium/auxiliary/driver_trace/tr_context.c @@ -2238,6 +2238,23 @@ static void trace_context_launch_grid(struct pipe_context *_pipe, trace_dump_call_end(); } +static void trace_context_get_compute_state_info(struct pipe_context *_pipe, void *cso, + struct pipe_compute_state_object_info *info) +{ + struct trace_context *tr_ctx = trace_context(_pipe); + struct pipe_context *pipe = tr_ctx->pipe; + + trace_dump_call_begin("pipe_context", "get_compute_state_info"); + + trace_dump_arg(ptr, pipe); + trace_dump_arg(ptr, cso); + + pipe->get_compute_state_info(pipe, cso, info); + + trace_dump_ret(compute_state_object_info, info); + trace_dump_call_end(); +} + static uint64_t trace_context_create_texture_handle(struct pipe_context *_pipe, struct pipe_sampler_view *view, const struct pipe_sampler_state *state) @@ -2540,6 +2557,7 @@ trace_context_create(struct trace_screen *tr_scr, TR_CTX_INIT(set_patch_vertices); TR_CTX_INIT(set_shader_buffers); TR_CTX_INIT(launch_grid); + TR_CTX_INIT(get_compute_state_info); TR_CTX_INIT(set_shader_images); TR_CTX_INIT(create_texture_handle); TR_CTX_INIT(delete_texture_handle); diff --git a/src/gallium/auxiliary/driver_trace/tr_dump_state.c b/src/gallium/auxiliary/driver_trace/tr_dump_state.c index 172e0ca1ef7..9f71d4fe8ed 100644 --- a/src/gallium/auxiliary/driver_trace/tr_dump_state.c +++ b/src/gallium/auxiliary/driver_trace/tr_dump_state.c @@ -1167,6 +1167,26 @@ void trace_dump_grid_info(const struct pipe_grid_info *state) trace_dump_struct_end(); } +void trace_dump_compute_state_object_info(const struct pipe_compute_state_object_info *state) +{ + if (!trace_dumping_enabled_locked()) + return; + + if (!state) { + trace_dump_null(); + return; + } + + trace_dump_struct_begin("pipe_compute_state_object_info"); + + trace_dump_member(uint, state, max_threads); + trace_dump_member(uint, state, preferred_simd_size); + trace_dump_member(uint, state, simd_sizes); + trace_dump_member(uint, state, private_memory); + + trace_dump_struct_end(); +} + void trace_dump_winsys_handle(const struct winsys_handle *whandle) { if (!trace_dumping_enabled_locked()) diff --git a/src/gallium/auxiliary/driver_trace/tr_dump_state.h b/src/gallium/auxiliary/driver_trace/tr_dump_state.h index ff3dc50ea6a..28246530dbf 100644 --- a/src/gallium/auxiliary/driver_trace/tr_dump_state.h +++ b/src/gallium/auxiliary/driver_trace/tr_dump_state.h @@ -112,6 +112,8 @@ void trace_dump_query_result(unsigned query_type, unsigned index, void trace_dump_grid_info(const struct pipe_grid_info *state); +void trace_dump_compute_state_object_info(const struct pipe_compute_state_object_info *state); + void trace_dump_image_view(const struct pipe_image_view *view); void trace_dump_memory_info(const struct pipe_memory_info *state);