diff options
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_draw.c | 7 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_emit.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c index a8701b44f3d..518168e51bc 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c @@ -127,7 +127,11 @@ draw_impl(struct fd_context *ctx, struct fd_ringbuffer *ring, struct fd_ringbuffer *state; state = fd6_build_vbo_state(emit, emit->vs); - fd6_emit_add_group(emit, state, FD6_GROUP_VBO, 0x7); + fd6_emit_add_group(emit, state, FD6_GROUP_VBO, 0x6); + fd_ringbuffer_del(state); + + state = fd6_build_vbo_state(emit, emit->bs); + fd6_emit_add_group(emit, state, FD6_GROUP_VBO_BINNING, 0x1); fd_ringbuffer_del(state); } @@ -233,6 +237,7 @@ fd6_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info, fd6_ctx->prog = fd6_emit_get_prog(&emit); } + emit.bs = fd6_emit_get_prog(&emit)->bs; emit.vs = fd6_emit_get_prog(&emit)->vs; emit.fs = fd6_emit_get_prog(&emit)->fs; diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h index 83d0ede82ff..7a308352aac 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_ZSA, FD6_GROUP_ZSA_BINNING, FD6_GROUP_VBO, + FD6_GROUP_VBO_BINNING, FD6_GROUP_VS_CONST, FD6_GROUP_FS_CONST, FD6_GROUP_VS_TEX, @@ -82,6 +83,7 @@ struct fd6_emit { /* cached to avoid repeated lookups: */ const struct fd6_program_state *prog; + struct ir3_shader_variant *bs; struct ir3_shader_variant *vs; struct ir3_shader_variant *fs; |