From 72f6164fefd796f6b0ffdc86b22e02de61835709 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Sat, 13 Oct 2018 13:54:32 -0400 Subject: [PATCH] freedreno/a6xx: split binning vs draw program stateobj's Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/a6xx/fd6_emit.c | 7 +++---- src/gallium/drivers/freedreno/a6xx/fd6_emit.h | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c index b164d8bc2da..ae91e90e4a1 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.c @@ -704,10 +704,9 @@ fd6_emit_state(struct fd_ringbuffer *ring, struct fd6_emit *emit) } if (dirty & FD_DIRTY_PROG) { - struct fd_ringbuffer *stateobj = emit->binning_pass ? - prog->binning_stateobj : prog->stateobj; - - fd6_emit_add_group(emit, stateobj, FD6_GROUP_PROG, 0x7); + fd6_emit_add_group(emit, prog->stateobj, FD6_GROUP_PROG, 0x6); + fd6_emit_add_group(emit, prog->binning_stateobj, + FD6_GROUP_PROG_BINNING, 0x1); /* emit remaining non-stateobj program state, ie. what depends * on other emit state, so cannot be pre-baked. This could diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h index 7a308352aac..0b5aa56de51 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.h +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.h @@ -44,6 +44,7 @@ struct fd_ringbuffer; */ enum fd6_state_id { FD6_GROUP_PROG, + FD6_GROUP_PROG_BINNING, FD6_GROUP_ZSA, FD6_GROUP_ZSA_BINNING, FD6_GROUP_VBO, -- 2.30.2