freedreno/a6xx: split binning vs draw program stateobj's
authorRob Clark <robdclark@gmail.com>
Sat, 13 Oct 2018 17:54:32 +0000 (13:54 -0400)
committerRob Clark <robdclark@gmail.com>
Wed, 17 Oct 2018 16:44:49 +0000 (12:44 -0400)
Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/a6xx/fd6_emit.c
src/gallium/drivers/freedreno/a6xx/fd6_emit.h

index b164d8bc2da085535c665b527662625c27d6b7cc..ae91e90e4a1b14d23abf46ba34fd549fc24a50a1 100644 (file)
@@ -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
index 7a308352aac3cdfa25c869a56b3257d68445e438..0b5aa56de51d0797bdebccd19e36f62c8602438e 100644 (file)
@@ -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,