Mesa (main): radeonsi: unify GFX9_VSGS_NUM_USER_SGPR and GFX9_TESGS_NUM_USER_SGPR
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Nov 16 02:41:11 UTC 2021
Module: Mesa
Branch: main
Commit: 5a5263d65deed894041a43c450d1636f6a0545e1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a5263d65deed894041a43c450d1636f6a0545e1
Author: Marek Olšák <marek.olsak at amd.com>
Date: Sun Nov 7 00:04:31 2021 -0400
radeonsi: unify GFX9_VSGS_NUM_USER_SGPR and GFX9_TESGS_NUM_USER_SGPR
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13700>
---
src/gallium/drivers/radeonsi/gfx10_shader_ngg.c | 4 ++--
src/gallium/drivers/radeonsi/si_shader.c | 4 ++--
src/gallium/drivers/radeonsi/si_shader.h | 3 +--
src/gallium/drivers/radeonsi/si_state_draw.cpp | 2 +-
src/gallium/drivers/radeonsi/si_state_shaders.cpp | 8 ++++----
5 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/gfx10_shader_ngg.c b/src/gallium/drivers/radeonsi/gfx10_shader_ngg.c
index b5369faf6ec..64c1b3d5b2a 100644
--- a/src/gallium/drivers/radeonsi/gfx10_shader_ngg.c
+++ b/src/gallium/drivers/radeonsi/gfx10_shader_ngg.c
@@ -1248,10 +1248,10 @@ void gfx10_emit_ngg_culling_epilogue(struct ac_shader_abi *abi)
if (shader->selector->num_vbos_in_user_sgprs) {
vgpr = 8 + SI_SGPR_VS_VB_DESCRIPTOR_FIRST + shader->selector->num_vbos_in_user_sgprs * 4;
} else {
- vgpr = 8 + GFX9_VSGS_NUM_USER_SGPR + 1;
+ vgpr = 8 + GFX9_GS_NUM_USER_SGPR + 1;
}
} else {
- vgpr = 8 + GFX9_TESGS_NUM_USER_SGPR;
+ vgpr = 8 + GFX9_GS_NUM_USER_SGPR;
}
val = LLVMBuildLoad(builder, new_vgpr0, "");
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index c19790ae293..98170796d6d 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -571,7 +571,7 @@ void si_init_shader_args(struct si_shader_context *ctx, bool ngg_cull_shader)
/* For the NGG cull shader, add 1 SGPR to hold
* the vertex buffer pointer.
*/
- num_user_sgprs = GFX9_VSGS_NUM_USER_SGPR + 1;
+ num_user_sgprs = GFX9_GS_NUM_USER_SGPR + 1;
if (shader->selector->num_vbos_in_user_sgprs) {
assert(num_user_sgprs <= SI_SGPR_VS_VB_DESCRIPTOR_FIRST);
@@ -579,7 +579,7 @@ void si_init_shader_args(struct si_shader_context *ctx, bool ngg_cull_shader)
SI_SGPR_VS_VB_DESCRIPTOR_FIRST + shader->selector->num_vbos_in_user_sgprs * 4;
}
} else if (ctx->stage == MESA_SHADER_TESS_EVAL && ngg_cull_shader) {
- num_user_sgprs = GFX9_TESGS_NUM_USER_SGPR;
+ num_user_sgprs = GFX9_GS_NUM_USER_SGPR;
} else {
num_user_sgprs = SI_NUM_VS_STATE_RESOURCE_SGPRS;
}
diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h
index bc27e82e696..a6292f9b397 100644
--- a/src/gallium/drivers/radeonsi/si_shader.h
+++ b/src/gallium/drivers/radeonsi/si_shader.h
@@ -211,8 +211,7 @@ enum
/* GS limits */
GFX6_GS_NUM_USER_SGPR = SI_NUM_RESOURCE_SGPRS,
- GFX9_VSGS_NUM_USER_SGPR = SI_VS_NUM_USER_SGPR,
- GFX9_TESGS_NUM_USER_SGPR = SI_TES_NUM_USER_SGPR,
+ GFX9_GS_NUM_USER_SGPR = MAX2(SI_VS_NUM_USER_SGPR, SI_TES_NUM_USER_SGPR),
SI_GSCOPY_NUM_USER_SGPR = SI_NUM_VS_STATE_RESOURCE_SGPRS,
/* PS only */
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp
index c721ce5c532..38bcce94056 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.cpp
+++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp
@@ -1863,7 +1863,7 @@ static bool si_upload_and_prefetch_VB_descriptors(struct si_context *sctx,
if (HAS_TESS)
sh_dw_offset = GFX9_TCS_NUM_USER_SGPR;
else if (HAS_GS)
- sh_dw_offset = GFX9_VSGS_NUM_USER_SGPR;
+ sh_dw_offset = GFX9_GS_NUM_USER_SGPR;
}
radeon_set_sh_reg(sh_base + sh_dw_offset * 4,
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp
index dede48d9220..358808f3b8e 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp
@@ -910,9 +910,9 @@ static void si_shader_gs(struct si_screen *sscreen, struct si_shader *shader)
unsigned num_user_sgprs;
if (es_stage == MESA_SHADER_VERTEX)
- num_user_sgprs = si_get_num_vs_user_sgprs(shader, GFX9_VSGS_NUM_USER_SGPR);
+ num_user_sgprs = si_get_num_vs_user_sgprs(shader, GFX9_GS_NUM_USER_SGPR);
else
- num_user_sgprs = GFX9_TESGS_NUM_USER_SGPR;
+ num_user_sgprs = GFX9_GS_NUM_USER_SGPR;
if (sscreen->info.chip_class >= GFX10) {
si_pm4_set_reg(pm4, R_00B320_SPI_SHADER_PGM_LO_ES, va >> 8);
@@ -1178,12 +1178,12 @@ static void gfx10_shader_ngg(struct si_screen *sscreen, struct si_shader *shader
num_user_sgprs =
SI_SGPR_VS_BLIT_DATA + es_info->base.vs.blit_sgprs_amd;
} else {
- num_user_sgprs = si_get_num_vs_user_sgprs(shader, GFX9_VSGS_NUM_USER_SGPR);
+ num_user_sgprs = si_get_num_vs_user_sgprs(shader, GFX9_GS_NUM_USER_SGPR);
}
} else {
assert(es_stage == MESA_SHADER_TESS_EVAL);
es_vgpr_comp_cnt = es_enable_prim_id ? 3 : 2;
- num_user_sgprs = GFX9_TESGS_NUM_USER_SGPR;
+ num_user_sgprs = GFX9_GS_NUM_USER_SGPR;
if (es_enable_prim_id || gs_info->uses_primid)
break_wave_at_eoi = true;
More information about the mesa-commit
mailing list