Commit 697e2e1f authored by Emma Anholt's avatar Emma Anholt
Browse files

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.
parent 1bc71e8b
...@@ -2273,16 +2273,8 @@ nir_to_vir(struct v3d_compile *c) ...@@ -2273,16 +2273,8 @@ nir_to_vir(struct v3d_compile *c)
V3D_QPU_WADDR_SYNC)); 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)); 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[1] = vir_MOV(c, vir_reg(QFILE_REG, 2));
}
/* Set up the division between gl_LocalInvocationIndex and /* Set up the division between gl_LocalInvocationIndex and
* wg_in_mem in the payload reg. * wg_in_mem in the payload reg.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment