Mesa (master): turnip: Use threadsize calculated by ir3
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Mar 22 18:20:00 UTC 2021
Module: Mesa
Branch: master
Commit: 7ecc70b31cb457f8399c688a4911e98d88c633b2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7ecc70b31cb457f8399c688a4911e98d88c633b2
Author: Connor Abbott <cwabbott0 at gmail.com>
Date: Wed Mar 10 13:26:58 2021 +0100
turnip: Use threadsize calculated by ir3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9498>
---
src/freedreno/vulkan/tu_pipeline.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c
index 40ed460fa8f..52b9e87e0fd 100644
--- a/src/freedreno/vulkan/tu_pipeline.c
+++ b/src/freedreno/vulkan/tu_pipeline.c
@@ -391,6 +391,8 @@ tu6_emit_xs_config(struct tu_cs *cs,
return;
}
+ enum a6xx_threadsize thrsz =
+ xs->info.double_threadsize ? THREAD128 : THREAD64;
switch (stage) {
case MESA_SHADER_VERTEX:
tu_cs_emit_regs(cs, A6XX_SP_VS_CTRL_REG0(
@@ -428,7 +430,7 @@ tu6_emit_xs_config(struct tu_cs *cs,
.halfregfootprint = xs->info.max_half_reg + 1,
.branchstack = xs->branchstack,
.mergedregs = xs->mergedregs,
- .threadsize = THREAD128,
+ .threadsize = thrsz,
.pixlodenable = xs->need_pixlod,
.diff_fine = xs->need_fine_derivatives,
.varying = xs->total_in != 0,
@@ -442,7 +444,7 @@ tu6_emit_xs_config(struct tu_cs *cs,
.halfregfootprint = xs->info.max_half_reg + 1,
.branchstack = xs->branchstack,
.mergedregs = xs->mergedregs,
- .threadsize = THREAD128,
+ .threadsize = thrsz,
));
break;
default:
@@ -577,6 +579,7 @@ tu6_emit_cs_config(struct tu_cs *cs, const struct tu_shader *shader,
uint32_t work_group_id =
ir3_find_sysval_regid(v, SYSTEM_VALUE_WORK_GROUP_ID);
+ enum a6xx_threadsize thrsz = v->info.double_threadsize ? THREAD128 : THREAD64;
tu_cs_emit_pkt4(cs, REG_A6XX_HLSQ_CS_CNTL_0, 2);
tu_cs_emit(cs,
A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(work_group_id) |
@@ -584,7 +587,7 @@ tu6_emit_cs_config(struct tu_cs *cs, const struct tu_shader *shader,
A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID(regid(63, 0)) |
A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(local_invocation_id));
tu_cs_emit(cs, A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID(regid(63, 0)) |
- A6XX_HLSQ_CS_CNTL_1_THREADSIZE(THREAD128));
+ A6XX_HLSQ_CS_CNTL_1_THREADSIZE(thrsz));
}
static void
@@ -1306,8 +1309,9 @@ tu6_emit_fs_inputs(struct tu_cs *cs, const struct ir3_shader_variant *fs)
A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(ij_regid[IJ_LINEAR_SAMPLE]));
tu_cs_emit(cs, 0xfc);
+ enum a6xx_threadsize thrsz = fs->info.double_threadsize ? THREAD128 : THREAD64;
tu_cs_emit_pkt4(cs, REG_A6XX_HLSQ_FS_CNTL_0, 1);
- tu_cs_emit(cs, A6XX_HLSQ_FS_CNTL_0_THREADSIZE(THREAD128) |
+ tu_cs_emit(cs, A6XX_HLSQ_FS_CNTL_0_THREADSIZE(thrsz) |
COND(enable_varyings, A6XX_HLSQ_FS_CNTL_0_VARYINGS));
bool need_size = fs->frag_face || fs->fragcoord_compmask != 0;
More information about the mesa-commit
mailing list