summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-09-23 22:34:10 +0200
committerNicolai Hähnle <[email protected]>2017-09-29 11:37:06 +0200
commit4ed419328d62b428207dbcc53cdf45b0d29f5962 (patch)
tree624e4511bf77d7e206fa6e70ec6a7513828731df
parent9ddc6e16a988750e15a52ea19bb1e76cd825e380 (diff)
radeonsi: move descriptor logs to after corresponding draw/compute packet
It has to happen after descriptor uploads since otherwise we'll print out the wrong GPU list / incorrectly claim descriptor corruption. Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_compute.c7
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c7
2 files changed, 6 insertions, 8 deletions
diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index 3987eecca8e..0a9d4f787d4 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -806,9 +806,6 @@ static void si_launch_grid(
si_need_cs_space(sctx);
- if (sctx->b.log)
- si_log_compute_state(sctx, sctx->b.log);
-
if (!sctx->cs_shader_state.initialized)
si_initialize_compute(sctx);
@@ -851,8 +848,10 @@ static void si_launch_grid(
si_emit_dispatch_packets(sctx, info);
- if (unlikely(sctx->current_saved_cs))
+ if (unlikely(sctx->current_saved_cs)) {
si_trace_emit(sctx);
+ si_log_compute_state(sctx, sctx->b.log);
+ }
sctx->compute_is_busy = true;
sctx->b.num_compute_calls++;
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index 897c86b0544..0a672c503fd 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -1376,9 +1376,6 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
si_need_cs_space(sctx);
- if (unlikely(sctx->b.log))
- si_log_draw_state(sctx, sctx->b.log);
-
/* Since we've called r600_context_add_resource_size for vertex buffers,
* this must be called after si_need_cs_space, because we must let
* need_cs_space flush before we add buffers to the buffer list.
@@ -1454,8 +1451,10 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
si_emit_draw_packets(sctx, info, indexbuf, index_size, index_offset);
}
- if (unlikely(sctx->current_saved_cs))
+ if (unlikely(sctx->current_saved_cs)) {
si_trace_emit(sctx);
+ si_log_draw_state(sctx, sctx->b.log);
+ }
/* Workaround for a VGT hang when streamout is enabled.
* It must be done after drawing. */