From: Eric Anholt Date: Tue, 25 Aug 2020 21:55:22 +0000 (-0700) Subject: freedreno/a5xx: Don't set the VARYING flag for fragcoord-only programs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=15bdbf34c4f3303f4eb7b7de7c1217cbdbfa704f;p=mesa.git freedreno/a5xx: Don't set the VARYING flag for fragcoord-only programs. As with a6xx (commits beb02a78, 5785bcc8), the blob doesn't set this flag for a5xx when fragcoords are used but not proper varyings. See for example dEQP-GLES2.functional.shaders.builtin_variable.fragcoord_xyz. The hope was that this would clear up separate_shader fails/flakes like it helped with a6xx's flakes, but that didn't happen. Part-of: --- diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_program.c b/src/gallium/drivers/freedreno/a5xx/fd5_program.c index 7065cfe59c7..07aecff5a84 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_program.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_program.c @@ -489,7 +489,6 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring, OUT_PKT4(ring, REG_A5XX_VPC_CNTL_0, 1); OUT_RING(ring, A5XX_VPC_CNTL_0_STRIDE_IN_VPC(l.max_loc) | COND(s[FS].v->total_in > 0, A5XX_VPC_CNTL_0_VARYING) | - COND(s[FS].v->fragcoord_compmask != 0, A5XX_VPC_CNTL_0_VARYING) | 0x10000); // XXX fd5_context(ctx)->max_loc = l.max_loc; @@ -524,7 +523,6 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring, OUT_PKT4(ring, REG_A5XX_SP_FS_CTRL_REG0, 1); OUT_RING(ring, COND(s[FS].v->total_in > 0, A5XX_SP_FS_CTRL_REG0_VARYING) | - COND(s[FS].v->fragcoord_compmask != 0, A5XX_SP_FS_CTRL_REG0_VARYING) | 0x40006 | /* XXX set pretty much everywhere */ A5XX_SP_FS_CTRL_REG0_THREADSIZE(fssz) | A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(s[FS].i->max_half_reg + 1) |