radeonsi: state atom IDs don't have to be off by one
authorMarek Olšák <marek.olsak@amd.com>
Tue, 24 Jan 2017 23:15:35 +0000 (00:15 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 30 Jan 2017 12:27:14 +0000 (13:27 +0100)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_pipe.h
src/gallium/drivers/radeonsi/si_state.c

index da6aca1..13b1e34 100644 (file)
@@ -435,7 +435,7 @@ static inline void
 si_set_atom_dirty(struct si_context *sctx,
                  struct r600_atom *atom, bool dirty)
 {
-       unsigned bit = 1 << (atom->id - 1);
+       unsigned bit = 1 << atom->id;
 
        if (dirty)
                sctx->dirty_atoms |= bit;
@@ -447,7 +447,7 @@ static inline bool
 si_is_atom_dirty(struct si_context *sctx,
                  struct r600_atom *atom)
 {
-       unsigned bit = 1 << (atom->id - 1);
+       unsigned bit = 1 << atom->id;
 
        return sctx->dirty_atoms & bit;
 }
index df4b813..359058b 100644 (file)
@@ -40,7 +40,7 @@ static void
 si_init_external_atom(struct si_context *sctx, struct r600_atom *atom,
                      struct r600_atom **list_elem)
 {
-       atom->id = list_elem - sctx->atoms.array + 1;
+       atom->id = list_elem - sctx->atoms.array;
        *list_elem = atom;
 }
 
@@ -50,7 +50,7 @@ void si_init_atom(struct si_context *sctx, struct r600_atom *atom,
                  void (*emit_func)(struct si_context *ctx, struct r600_atom *state))
 {
        atom->emit = (void*)emit_func;
-       atom->id = list_elem - sctx->atoms.array + 1; /* index+1 in the atom array */
+       atom->id = list_elem - sctx->atoms.array;
        *list_elem = atom;
 }