Mesa (main): r600: Add number of ALU groups to statistics
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 7 20:18:52 UTC 2022
Module: Mesa
Branch: main
Commit: 105b03a5ed0e280c543fcc3c23795f0b301904b6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=105b03a5ed0e280c543fcc3c23795f0b301904b6
Author: Gert Wollny <gert.wollny at collabora.com>
Date: Wed May 18 22:41:54 2022 +0200
r600: Add number of ALU groups to statistics
The number of ALU groups is important for good sccheduling, so
let's add it to the stats.
Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Reviewed-by: Filip Gawin <filip at gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17076>
---
src/gallium/drivers/r600/r600_asm.c | 8 +++++++-
src/gallium/drivers/r600/r600_asm.h | 1 +
src/gallium/drivers/r600/r600_shader.c | 3 ++-
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 00fc1e5dea0..0d7e5dff027 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -1347,9 +1347,12 @@ int r600_bytecode_add_alu_type(struct r600_bytecode *bc,
return r;
if (bc->cf_last->prev_bs_head) {
- r = merge_inst_groups(bc, slots, bc->cf_last->prev_bs_head);
+ struct r600_bytecode_alu *cur_prev_head = bc->cf_last->prev_bs_head;
+ r = merge_inst_groups(bc, slots, cur_prev_head);
if (r)
return r;
+ if (cur_prev_head != bc->cf_last->prev_bs_head)
+ bc->nalu_groups--;
}
if (bc->cf_last->prev_bs_head) {
@@ -1381,10 +1384,13 @@ int r600_bytecode_add_alu_type(struct r600_bytecode *bc,
bc->cf_last->prev_bs_head = bc->cf_last->curr_bs_head;
bc->cf_last->curr_bs_head = NULL;
+ bc->nalu_groups++;
+
if (bc->r6xx_nop_after_rel_dst) {
for (int i = 0; i < max_slots; ++i) {
if (slots[i] && slots[i]->dst.rel) {
insert_nop_r6xx(bc, max_slots);
+ bc->nalu_groups++;
break;
}
}
diff --git a/src/gallium/drivers/r600/r600_asm.h b/src/gallium/drivers/r600/r600_asm.h
index f7a24edbabc..3072e64e4fd 100644
--- a/src/gallium/drivers/r600/r600_asm.h
+++ b/src/gallium/drivers/r600/r600_asm.h
@@ -262,6 +262,7 @@ struct r600_bytecode {
struct r600_bytecode_cf *cf_last;
unsigned ndw;
unsigned ncf;
+ unsigned nalu_groups;
unsigned ngpr;
unsigned nstack;
unsigned nlds_dw;
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index ce1aac32a0b..487a4b79342 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -382,10 +382,11 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
goto error;
}
- util_debug_message(&rctx->b.debug, SHADER_INFO, "%s shader: %d dw, %d gprs, %d loops, %d cf, %d stack",
+ util_debug_message(&rctx->b.debug, SHADER_INFO, "%s shader: %d dw, %d gprs, %d alu_groups, %d loops, %d cf, %d stack",
_mesa_shader_stage_to_abbrev(tgsi_processor_to_shader_stage(processor)),
shader->shader.bc.ndw,
shader->shader.bc.ngpr,
+ shader->shader.bc.nalu_groups,
shader->shader.num_loops,
shader->shader.bc.ncf,
shader->shader.bc.nstack);
More information about the mesa-commit
mailing list