summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/freedreno/a6xx
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2018-10-13 13:54:32 -0400
committerRob Clark <robdclark@gmail.com>2018-10-17 12:44:49 -0400
commit72f6164fefd796f6b0ffdc86b22e02de61835709 (patch)
tree43d0f88b00c8309e2c22e72fa7cce61e8409d506 /src/gallium/drivers/freedreno/a6xx
parent3313d693af28ee099aae8ac6e34ad007e007de84 (diff)
freedreno/a6xx: split binning vs draw program stateobj's
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'src/gallium/drivers/freedreno/a6xx')
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_emit.c7
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_emit.h1
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,