panfrost: Document MALI_WRITES_GLOBAL bit
[mesa.git] / src / gallium / drivers / freedreno / a6xx / fd6_program.c
index 24c8ab080e2f33de33c50df595078220b53f9245..98774a2cfe56de2ede7a507463b7ae109ceda3b8 100644 (file)
@@ -806,6 +806,18 @@ setup_stateobj(struct fd_ringbuffer *ring, struct fd_screen *screen,
        OUT_PKT4(ring, REG_A6XX_PC_PRIMID_CNTL, 1);
        OUT_RING(ring, COND(primid_passthru, A6XX_PC_PRIMID_CNTL_PRIMID_PASSTHRU));
 
+       uint32_t non_sysval_input_count = 0;
+       for (uint32_t i = 0; i < vs->inputs_count; i++)
+               if (!vs->inputs[i].sysval)
+                       non_sysval_input_count++;
+
+       OUT_PKT4(ring, REG_A6XX_VFD_DEST_CNTL(0), non_sysval_input_count);
+       for (uint32_t i = 0; i < non_sysval_input_count; i++) {
+               assert(vs->inputs[i].compmask);
+               OUT_RING(ring, A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(vs->inputs[i].compmask) |
+                               A6XX_VFD_DEST_CNTL_INSTR_REGID(vs->inputs[i].regid));
+       }
+
        OUT_PKT4(ring, REG_A6XX_VFD_CONTROL_1, 6);
        OUT_RING(ring, A6XX_VFD_CONTROL_1_REGID4VTX(vertex_regid) |
                        A6XX_VFD_CONTROL_1_REGID4INST(instance_regid) |