summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/freedreno/a5xx/fd5_program.c
diff options
context:
space:
mode:
authorEmma Anholt <emma@anholt.net>2021-09-20 14:55:56 -0700
committerMarge Bot <eric+marge@anholt.net>2021-09-21 17:11:42 +0000
commit590ac4789db02e742f78aab4793f96619724d1e2 (patch)
tree3aa6ac610f0995aa57e2ab664344326358744ab3 /src/gallium/drivers/freedreno/a5xx/fd5_program.c
parent3f9991643367cf18fc683059e49271e7469fb838 (diff)
freedreno/a5xx+: Set the IJ_LINEAR_* request bits if we need the regs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12949>
Diffstat (limited to 'src/gallium/drivers/freedreno/a5xx/fd5_program.c')
-rw-r--r--src/gallium/drivers/freedreno/a5xx/fd5_program.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_program.c b/src/gallium/drivers/freedreno/a5xx/fd5_program.c
index 531c4e288fd..2236420cdf1 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_program.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_program.c
@@ -542,15 +542,18 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
OUT_PKT4(ring, REG_A5XX_SP_SP_CNTL, 1);
OUT_RING(ring, 0x00000010); /* XXX */
- /* XXX: missing enable bits for per-sample bary linear centroid and
- * IJ_PERSP_SIZE (should be identical to a6xx)
- */
-
OUT_PKT4(ring, REG_A5XX_GRAS_CNTL, 1);
OUT_RING(ring,
CONDREG(ij_regid[IJ_PERSP_PIXEL], A5XX_GRAS_CNTL_IJ_PERSP_PIXEL) |
CONDREG(ij_regid[IJ_PERSP_CENTROID],
A5XX_GRAS_CNTL_IJ_PERSP_CENTROID) |
+ CONDREG(ij_regid[IJ_PERSP_SAMPLE],
+ A5XX_GRAS_CNTL_IJ_PERSP_SAMPLE) |
+ CONDREG(ij_regid[IJ_LINEAR_PIXEL], A5XX_GRAS_CNTL_IJ_LINEAR_PIXEL) |
+ CONDREG(ij_regid[IJ_LINEAR_CENTROID],
+ A5XX_GRAS_CNTL_IJ_LINEAR_CENTROID) |
+ CONDREG(ij_regid[IJ_LINEAR_SAMPLE],
+ A5XX_GRAS_CNTL_IJ_LINEAR_SAMPLE) |
COND(s[FS].v->fragcoord_compmask != 0,
A5XX_GRAS_CNTL_COORD_MASK(s[FS].v->fragcoord_compmask) |
A5XX_GRAS_CNTL_IJ_LINEAR_PIXEL) |
@@ -564,6 +567,14 @@ fd5_program_emit(struct fd_context *ctx, struct fd_ringbuffer *ring,
A5XX_RB_RENDER_CONTROL0_IJ_PERSP_PIXEL) |
CONDREG(ij_regid[IJ_PERSP_CENTROID],
A5XX_RB_RENDER_CONTROL0_IJ_PERSP_CENTROID) |
+ CONDREG(ij_regid[IJ_PERSP_SAMPLE],
+ A5XX_RB_RENDER_CONTROL0_IJ_PERSP_SAMPLE) |
+ CONDREG(ij_regid[IJ_LINEAR_PIXEL],
+ A5XX_RB_RENDER_CONTROL0_IJ_LINEAR_PIXEL) |
+ CONDREG(ij_regid[IJ_LINEAR_CENTROID],
+ A5XX_RB_RENDER_CONTROL0_IJ_LINEAR_CENTROID) |
+ CONDREG(ij_regid[IJ_LINEAR_SAMPLE],
+ A5XX_RB_RENDER_CONTROL0_IJ_LINEAR_SAMPLE) |
COND(s[FS].v->fragcoord_compmask != 0,
A5XX_RB_RENDER_CONTROL0_COORD_MASK(s[FS].v->fragcoord_compmask) |
A5XX_RB_RENDER_CONTROL0_IJ_LINEAR_PIXEL) |