Mesa (master): turnip: Set up REG_A6XX_SP_GS_CONFIG
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Apr 7 14:48:15 UTC 2020
Module: Mesa
Branch: master
Commit: 475fe500bfe495ffa0715e7a19d044b8d6f4f341
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=475fe500bfe495ffa0715e7a19d044b8d6f4f341
Author: Brian Ho <brian at brkho.com>
Date: Wed Apr 1 13:26:17 2020 -0700
turnip: Set up REG_A6XX_SP_GS_CONFIG
Updates GS_CONFIG and HLSQ_GS_CNTL registers to match those emitted
by the blob and fd.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4436>
---
src/freedreno/vulkan/tu_pipeline.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c
index fa070fcf957..48f08cb5f3a 100644
--- a/src/freedreno/vulkan/tu_pipeline.c
+++ b/src/freedreno/vulkan/tu_pipeline.c
@@ -438,19 +438,21 @@ static void
tu6_emit_gs_config(struct tu_cs *cs, struct tu_shader *shader,
const struct ir3_shader_variant *gs)
{
- uint32_t sp_gs_config = 0;
- if (gs->instrlen)
- sp_gs_config |= A6XX_SP_GS_CONFIG_ENABLED;
-
+ bool has_gs = gs->type != MESA_SHADER_NONE;
tu_cs_emit_pkt4(cs, REG_A6XX_SP_GS_UNKNOWN_A871, 1);
tu_cs_emit(cs, 0);
tu_cs_emit_pkt4(cs, REG_A6XX_SP_GS_CONFIG, 2);
- tu_cs_emit(cs, sp_gs_config);
+ tu_cs_emit(cs, COND(has_gs,
+ A6XX_SP_GS_CONFIG_ENABLED |
+ A6XX_SP_GS_CONFIG_NIBO(ir3_shader_nibo(gs)) |
+ A6XX_SP_GS_CONFIG_NTEX(gs->num_samp) |
+ A6XX_SP_GS_CONFIG_NSAMP(gs->num_samp)));
tu_cs_emit(cs, gs->instrlen);
tu_cs_emit_pkt4(cs, REG_A6XX_HLSQ_GS_CNTL, 1);
- tu_cs_emit(cs, A6XX_HLSQ_GS_CNTL_CONSTLEN(align(gs->constlen, 4)));
+ tu_cs_emit(cs, COND(has_gs, A6XX_HLSQ_GS_CNTL_ENABLED) |
+ A6XX_HLSQ_GS_CNTL_CONSTLEN(align(gs->constlen, 4)));
}
static void
More information about the mesa-commit
mailing list