radeonsi: remove si_atom::id
[mesa.git] / src / gallium / drivers / radeonsi / si_pipe.h
index 37ff05082cf8b70248b096ac479d5a28b242741e..41f88b9688e69663ceec9a29d0df6e6d4f89dba4 100644 (file)
@@ -1339,11 +1339,16 @@ si_invalidate_draw_sh_constants(struct si_context *sctx)
        sctx->last_base_vertex = SI_BASE_VERTEX_UNKNOWN;
 }
 
+static inline unsigned
+si_get_atom_bit(struct si_context *sctx, struct si_atom *atom)
+{
+       return 1 << (atom - sctx->atoms.array);
+}
+
 static inline void
-si_set_atom_dirty(struct si_context *sctx,
-                 struct si_atom *atom, bool dirty)
+si_set_atom_dirty(struct si_context *sctx, struct si_atom *atom, bool dirty)
 {
-       unsigned bit = 1 << atom->id;
+       unsigned bit = si_get_atom_bit(sctx, atom);
 
        if (dirty)
                sctx->dirty_atoms |= bit;
@@ -1352,17 +1357,13 @@ si_set_atom_dirty(struct si_context *sctx,
 }
 
 static inline bool
-si_is_atom_dirty(struct si_context *sctx,
-                struct si_atom *atom)
+si_is_atom_dirty(struct si_context *sctx, struct si_atom *atom)
 {
-       unsigned bit = 1 << atom->id;
-
-       return sctx->dirty_atoms & bit;
+       return (sctx->dirty_atoms & si_get_atom_bit(sctx, atom)) != 0;
 }
 
 static inline void
-si_mark_atom_dirty(struct si_context *sctx,
-                  struct si_atom *atom)
+si_mark_atom_dirty(struct si_context *sctx, struct si_atom *atom)
 {
        si_set_atom_dirty(sctx, atom, true);
 }