diff options
author | Rob Clark <[email protected]> | 2020-01-16 15:14:19 -0800 |
---|---|---|
committer | Rob Clark <[email protected]> | 2020-01-17 15:43:51 -0800 |
commit | 95187083c4d83377555a0f85918fbbd2fdf94f6a (patch) | |
tree | 80bafccb44bc89c773e962c0cd4c9b96b8dc00d6 | |
parent | 6dc9b292d09c2bc6f02d061abd928ed473728353 (diff) |
freedreno/a6xx: add PROG_FB_RAST stateobj
For the handful of registers that depend on the union of program/
framebuffer/rasterizer state.
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Kristian H. Kristensen <[email protected]>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3435>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3435>
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_emit.c | 5 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_emit.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index d6535ea580c..7b1b88cee7e 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -1030,6 +1030,9 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) } if (dirty & (FD_DIRTY_FRAMEBUFFER | FD_DIRTY_RASTERIZER | FD_DIRTY_PROG)) { + struct fd_ringbuffer *ring = fd_submit_new_ringbuffer( + emit->ctx->batch->submit, 5 * 4, FD_RINGBUFFER_STREAMING); + unsigned nr = pfb->nr_cbufs; if (ctx->rasterizer->rasterizer_discard) @@ -1043,6 +1046,8 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) OUT_PKT4(ring, REG_A6XX_SP_FS_OUTPUT_CNTL1, 1); OUT_RING(ring, A6XX_SP_FS_OUTPUT_CNTL1_MRT(nr)); + + fd6_emit_take_group(emit, ring, FD6_GROUP_PROG_FB_RAST, ENABLE_DRAW); } fd6_emit_consts(emit, vs, PIPE_SHADER_VERTEX, FD6_GROUP_VS_CONST, ENABLE_ALL); diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h index 5d03761c7ac..04674c7c833 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h @@ -47,6 +47,7 @@ enum fd6_state_id { FD6_GROUP_PROG, FD6_GROUP_PROG_BINNING, FD6_GROUP_PROG_INTERP, + FD6_GROUP_PROG_FB_RAST, FD6_GROUP_LRZ, FD6_GROUP_LRZ_BINNING, FD6_GROUP_VBO, |