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_clear.c | |
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_clear.c')
-rw-r--r-- | src/gallium/drivers/iris/iris_clear.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/gallium/drivers/iris/iris_clear.c b/src/gallium/drivers/iris/iris_clear.c index 45030eb1208..23348077d31 100644 --- a/src/gallium/drivers/iris/iris_clear.c +++ b/src/gallium/drivers/iris/iris_clear.c @@ -249,7 +249,9 @@ fast_clear_color(struct iris_context *ice, * and again afterwards to ensure that the resolve is complete before we * do any more regular drawing. */ - iris_emit_end_of_pipe_sync(batch, PIPE_CONTROL_RENDER_TARGET_FLUSH); + iris_emit_end_of_pipe_sync(batch, + "fast clear: pre-flush", + PIPE_CONTROL_RENDER_TARGET_FLUSH); /* If we reach this point, we need to fast clear to change the state to * ISL_AUX_STATE_CLEAR, or to update the fast clear color (or both). @@ -274,7 +276,9 @@ fast_clear_color(struct iris_context *ice, box->x, box->y, box->x + box->width, box->y + box->height); blorp_batch_finish(&blorp_batch); - iris_emit_end_of_pipe_sync(batch, PIPE_CONTROL_RENDER_TARGET_FLUSH); + iris_emit_end_of_pipe_sync(batch, + "fast clear: post flush", + PIPE_CONTROL_RENDER_TARGET_FLUSH); iris_resource_set_aux_state(ice, res, level, box->z, box->depth, ISL_AUX_STATE_CLEAR); @@ -344,7 +348,8 @@ clear_color(struct iris_context *ice, color, color_write_disable); blorp_batch_finish(&blorp_batch); - iris_flush_and_dirty_for_history(ice, batch, res); + iris_flush_and_dirty_for_history(ice, batch, res, + "cache history: post color clear"); iris_resource_finish_render(ice, res, level, box->z, box->depth, aux_usage); @@ -510,7 +515,8 @@ clear_depth_stencil(struct iris_context *ice, if (z_res && clear_depth && can_fast_clear_depth(ice, z_res, level, box, depth)) { fast_clear_depth(ice, z_res, level, box, depth); - iris_flush_and_dirty_for_history(ice, batch, res); + iris_flush_and_dirty_for_history(ice, batch, res, + "cache history: post fast Z clear"); clear_depth = false; z_res = false; } @@ -546,7 +552,8 @@ clear_depth_stencil(struct iris_context *ice, clear_stencil && stencil_res ? 0xff : 0, stencil); blorp_batch_finish(&blorp_batch); - iris_flush_and_dirty_for_history(ice, batch, res); + iris_flush_and_dirty_for_history(ice, batch, res, + "cache history: post slow ZS clear"); if (z_res) { iris_resource_finish_depth(ice, z_res, level, |