freedreno/a6xx: Add helper for incrementing regid
[mesa.git] / src / gallium / drivers / freedreno / a6xx / fd6_program.c
index c20472f63c26377bee79f12b64316fcc2bdccd23..44c9e8a689bd9ad7d2311f1426e4ea3f64e92627 100644 (file)
@@ -287,6 +287,15 @@ setup_stages(struct fd6_program_state *state, struct stage *s, bool binning_pass
        }
 }
 
+static inline uint32_t
+next_regid(uint32_t reg, uint32_t increment)
+{
+       if (reg == regid(63,0))
+               return regid(63,0);
+       else
+               return reg + increment;
+}
+
 static void
 setup_stateobj(struct fd_ringbuffer *ring,
                struct fd6_program_state *state, bool binning_pass)
@@ -327,7 +336,7 @@ setup_stateobj(struct fd_ringbuffer *ring,
        samp_mask_regid = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_SAMPLE_MASK_IN);
        face_regid      = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRONT_FACE);
        coord_regid     = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_FRAG_COORD);
-       zwcoord_regid   = (coord_regid == regid(63,0)) ? regid(63,0) : (coord_regid + 2);
+       zwcoord_regid   = next_regid(coord_regid, 2);
        vcoord_regid    = ir3_find_sysval_regid(s[FS].v, SYSTEM_VALUE_VARYING_COORD);
        posz_regid      = ir3_find_output_regid(s[FS].v, FRAG_RESULT_DEPTH);
 
@@ -508,11 +517,11 @@ setup_stateobj(struct fd_ringbuffer *ring,
        OUT_RING(ring, 0xfc);              /* XXX */
 
        OUT_PKT4(ring, REG_A6XX_HLSQ_UNKNOWN_B980, 1);
-       OUT_RING(ring, s[FS].v->total_in > 0 ? 3 : 1);
+       OUT_RING(ring, enable_varyings ? 3 : 1);
 
        OUT_PKT4(ring, REG_A6XX_SP_FS_CTRL_REG0, 1);
        OUT_RING(ring, A6XX_SP_FS_CTRL_REG0_THREADSIZE(fssz) |
-                       COND(s[FS].v->total_in > 0, A6XX_SP_FS_CTRL_REG0_VARYING) |
+                       COND(enable_varyings, A6XX_SP_FS_CTRL_REG0_VARYING) |
                        COND(s[FS].v->frag_coord, A6XX_SP_FS_CTRL_REG0_VARYING) |
                        0x1000000 |
                        A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(s[FS].i->max_reg + 1) |