OSDN Git Service

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 b164d8b..ae91e90 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 7a30835..0b5aa56 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,