Mesa (master): v3d: Always set up the qregs for CSD payload.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Apr 16 19:11:58 UTC 2019
Module: Mesa
Branch: master
Commit: 697e2e1f268ef464cfbde01719757e865b86ecbf
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=697e2e1f268ef464cfbde01719757e865b86ecbf
Author: Eric Anholt <eric at anholt.net>
Date: Mon Apr 15 16:36:17 2019 -0700
v3d: Always set up the qregs for CSD payload.
We were failing to set up payload[1] for use by LocalInvocationIndex/ID
and shared variable accesses if gl_WorkGroupID/gl_GlobalInvocationID
wasn't used (possibly because you only have one workgroup). You're always
going to use payload[1], and payload[0] is common enough and we have DCE
in the backend to clean it up if it happens to not be used.
---
src/broadcom/compiler/nir_to_vir.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index dd4d055d68a..9a4705a3de6 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -2273,16 +2273,8 @@ nir_to_vir(struct v3d_compile *c)
V3D_QPU_WADDR_SYNC));
}
- if (c->s->info.system_values_read &
- ((1ull << SYSTEM_VALUE_LOCAL_INVOCATION_INDEX) |
- (1ull << SYSTEM_VALUE_WORK_GROUP_ID))) {
- c->cs_payload[0] = vir_MOV(c, vir_reg(QFILE_REG, 0));
- }
- if ((c->s->info.system_values_read &
- ((1ull << SYSTEM_VALUE_WORK_GROUP_ID))) ||
- c->s->info.cs.shared_size) {
- c->cs_payload[1] = vir_MOV(c, vir_reg(QFILE_REG, 2));
- }
+ c->cs_payload[0] = vir_MOV(c, vir_reg(QFILE_REG, 0));
+ c->cs_payload[1] = vir_MOV(c, vir_reg(QFILE_REG, 2));
/* Set up the division between gl_LocalInvocationIndex and
* wg_in_mem in the payload reg.
More information about the mesa-commit
mailing list