X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fradeonsi%2Fsi_pipe.h;h=41f88b9688e69663ceec9a29d0df6e6d4f89dba4;hb=ccebcba893cb54f36fec41f548071b08b9f7ba16;hp=37ff05082cf8b70248b096ac479d5a28b242741e;hpb=639b673fc3b8754dc85fd686dab6ac26738dc3d9;p=mesa.git diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 37ff05082cf..41f88b9688e 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -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); }