diff options
author | Kenneth Graunke <[email protected]> | 2019-06-19 16:04:50 -0500 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-06-20 13:32:15 -0500 |
commit | d4a4384b315a4b74357b30f868f4d1c25a571083 (patch) | |
tree | c14800614d3bcc28eef9e31552057eea6b516926 /src/gallium/drivers/iris/iris_context.h | |
parent | c378829a0df904c907d7070801fd89749053680f (diff) |
iris: Implement INTEL_DEBUG=pc for pipe control logging.
This prints a log of every PIPE_CONTROL flush we emit, noting which bits
were set, and also the reason for the flush. That way we can see which
are caused by hardware workarounds, render-to-texture, buffer updates,
and so on. It should make it easier to determine whether we're doing
too many flushes and why.
Diffstat (limited to 'src/gallium/drivers/iris/iris_context.h')
-rw-r--r-- | src/gallium/drivers/iris/iris_context.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index e319ecb6df1..dbaec560bc5 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -455,7 +455,8 @@ struct iris_vtable { struct iris_bo *dst_bo, uint32_t dst_offset, struct iris_bo *src_bo, uint32_t src_offset, unsigned bytes); - void (*emit_raw_pipe_control)(struct iris_batch *batch, uint32_t flags, + void (*emit_raw_pipe_control)(struct iris_batch *batch, + const char *reason, uint32_t flags, struct iris_bo *bo, uint32_t offset, uint64_t imm); @@ -771,12 +772,13 @@ void iris_launch_grid(struct pipe_context *, const struct pipe_grid_info *); /* iris_pipe_control.c */ void iris_emit_pipe_control_flush(struct iris_batch *batch, - uint32_t flags); -void iris_emit_pipe_control_write(struct iris_batch *batch, uint32_t flags, + const char *reason, uint32_t flags); +void iris_emit_pipe_control_write(struct iris_batch *batch, + const char *reason, uint32_t flags, struct iris_bo *bo, uint32_t offset, uint64_t imm); void iris_emit_end_of_pipe_sync(struct iris_batch *batch, - uint32_t flags); + const char *reason, uint32_t flags); void iris_init_flush_functions(struct pipe_context *ctx); |