freedreno/a6xx: don't set SP_FS_CTRL_REG0.VARYING for fragcoord
authorRob Clark <robdclark@chromium.org>
Thu, 30 Apr 2020 20:54:49 +0000 (13:54 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 30 Apr 2020 21:38:52 +0000 (21:38 +0000)
Similar change to 5785bcc8a0ff9c5072c647337bf73f696c63cbe6.  It appears
on a6xx and in fact this could cause varying corruption before the FS
had a chance to consume the varyings from varying storage.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2838
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4838>

src/gallium/drivers/freedreno/a6xx/fd6_program.c

index 454b4c4f9c79a94c010ca50b02d6fc1e1aec0326..92da43e5c3c431f32caf8be629ea1e6de380d6fb 100644 (file)
@@ -624,7 +624,6 @@ setup_stateobj(struct fd_ringbuffer *ring, struct fd_screen *screen,
        OUT_PKT4(ring, REG_A6XX_SP_FS_CTRL_REG0, 1);
        OUT_RING(ring, A6XX_SP_FS_CTRL_REG0_THREADSIZE(fssz) |
                        COND(enable_varyings, A6XX_SP_FS_CTRL_REG0_VARYING) |
-                       COND(fs->frag_coord, A6XX_SP_FS_CTRL_REG0_VARYING) |
                        0x1000000 |
                        A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(fs->info.max_reg + 1) |
                        A6XX_SP_FS_CTRL_REG0_MERGEDREGS |