mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
aux/trace: do deep dumps of fb state for triggered traces
having the full surface info available here is very useful Acked-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10093>
This commit is contained in:
parent
5ac3bb806b
commit
5a61a4dbfa
3 changed files with 36 additions and 4 deletions
|
|
@ -90,14 +90,18 @@ trace_surface_unwrap(struct trace_context *tr_ctx,
|
|||
|
||||
static void
|
||||
dump_fb_state(struct trace_context *tr_ctx,
|
||||
const char *method)
|
||||
const char *method,
|
||||
bool deep)
|
||||
{
|
||||
struct pipe_context *pipe = tr_ctx->pipe;
|
||||
|
||||
trace_dump_call_begin("pipe_context", method);
|
||||
|
||||
trace_dump_arg(ptr, pipe);
|
||||
trace_dump_arg(framebuffer_state, &tr_ctx->unwrapped_state);
|
||||
if (deep)
|
||||
trace_dump_arg(framebuffer_state_deep, &tr_ctx->unwrapped_state);
|
||||
else
|
||||
trace_dump_arg(framebuffer_state, &tr_ctx->unwrapped_state);
|
||||
trace_dump_call_end();
|
||||
|
||||
tr_ctx->seen_fb_state = true;
|
||||
|
|
@ -114,7 +118,7 @@ trace_context_draw_vbo(struct pipe_context *_pipe,
|
|||
struct pipe_context *pipe = tr_ctx->pipe;
|
||||
|
||||
if (!tr_ctx->seen_fb_state && trace_dump_is_triggered())
|
||||
dump_fb_state(tr_ctx, "current_framebuffer_state");
|
||||
dump_fb_state(tr_ctx, "current_framebuffer_state", true);
|
||||
|
||||
trace_dump_call_begin("pipe_context", "draw_vbo");
|
||||
|
||||
|
|
@ -870,7 +874,7 @@ trace_context_set_framebuffer_state(struct pipe_context *_pipe,
|
|||
tr_ctx->unwrapped_state.zsbuf = trace_surface_unwrap(tr_ctx, state->zsbuf);
|
||||
state = &tr_ctx->unwrapped_state;
|
||||
|
||||
dump_fb_state(tr_ctx, "set_framebuffer_state");
|
||||
dump_fb_state(tr_ctx, "set_framebuffer_state", trace_dump_is_triggered());
|
||||
|
||||
pipe->set_framebuffer_state(pipe, state);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -487,6 +487,24 @@ void trace_dump_framebuffer_state(const struct pipe_framebuffer_state *state)
|
|||
trace_dump_struct_end();
|
||||
}
|
||||
|
||||
void trace_dump_framebuffer_state_deep(const struct pipe_framebuffer_state *state)
|
||||
{
|
||||
if (!trace_dumping_enabled_locked())
|
||||
return;
|
||||
|
||||
trace_dump_struct_begin("pipe_framebuffer_state");
|
||||
|
||||
trace_dump_member(uint, state, width);
|
||||
trace_dump_member(uint, state, height);
|
||||
trace_dump_member(uint, state, samples);
|
||||
trace_dump_member(uint, state, layers);
|
||||
trace_dump_member(uint, state, nr_cbufs);
|
||||
trace_dump_member_array(surface, state, cbufs);
|
||||
trace_dump_member(surface, state, zsbuf);
|
||||
|
||||
trace_dump_struct_end();
|
||||
}
|
||||
|
||||
|
||||
void trace_dump_sampler_state(const struct pipe_sampler_state *state)
|
||||
{
|
||||
|
|
@ -566,6 +584,12 @@ void trace_dump_sampler_view_template(const struct pipe_sampler_view *state,
|
|||
}
|
||||
|
||||
|
||||
void trace_dump_surface(const struct pipe_surface *surface)
|
||||
{
|
||||
trace_dump_surface_template(surface, surface ? surface->texture->target : 0);
|
||||
}
|
||||
|
||||
|
||||
void trace_dump_surface_template(const struct pipe_surface *state,
|
||||
enum pipe_texture_target target)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -62,11 +62,15 @@ void trace_dump_stencil_ref(const struct pipe_stencil_ref *state);
|
|||
|
||||
void trace_dump_framebuffer_state(const struct pipe_framebuffer_state *state);
|
||||
|
||||
void trace_dump_framebuffer_state_deep(const struct pipe_framebuffer_state *state);
|
||||
|
||||
void trace_dump_sampler_state(const struct pipe_sampler_state *state);
|
||||
|
||||
void trace_dump_sampler_view_template(const struct pipe_sampler_view *view,
|
||||
enum pipe_texture_target target);
|
||||
|
||||
void trace_dump_surface(const struct pipe_surface *surface);
|
||||
|
||||
void trace_dump_surface_template(const struct pipe_surface *state,
|
||||
enum pipe_texture_target target);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue