nir: add deref lowering sanity checking
This will be removed at the end of the transition, but add some tracking plus asserts to help ensure that lowering passes are called at the correct point (pre or post deref instruction lowering) as passes are converted and the point where lower_deref_instrs() is called is moved. Signed-off-by: Rob Clark <robdclark@gmail.com> Acked-by: Rob Clark <robdclark@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Acked-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:

committed by
Jason Ekstrand

parent
74212c2414
commit
d80c342d89
@@ -2133,8 +2133,19 @@ typedef struct nir_shader {
|
||||
* access plus one
|
||||
*/
|
||||
unsigned num_inputs, num_uniforms, num_outputs, num_shared;
|
||||
|
||||
/* temporary, tracking for which derefs instructions have been lowered
|
||||
* to deref chains
|
||||
*/
|
||||
unsigned lowered_derefs;
|
||||
} nir_shader;
|
||||
|
||||
#define nir_assert_lowered_derefs(shader, mask) \
|
||||
assert(((shader)->lowered_derefs & (mask)) == (mask))
|
||||
|
||||
#define nir_assert_unlowered_derefs(shader, mask) \
|
||||
assert(!((shader)->lowered_derefs & (mask)))
|
||||
|
||||
static inline nir_function_impl *
|
||||
nir_shader_get_entrypoint(nir_shader *shader)
|
||||
{
|
||||
@@ -2681,6 +2692,7 @@ enum nir_lower_deref_flags {
|
||||
nir_lower_atomic_counter_derefs = (1 << 3),
|
||||
nir_lower_atomic_derefs = (1 << 4),
|
||||
nir_lower_image_derefs = (1 << 5),
|
||||
nir_lower_all_derefs = (1 << 6) - 1,
|
||||
};
|
||||
|
||||
bool nir_lower_deref_instrs(nir_shader *shader,
|
||||
|
Reference in New Issue
Block a user