diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-04-02 17:41:07 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-04-08 19:29:33 -0700 |
commit | 0425b34b79097384b578dc0999484f4199ff5516 (patch) | |
tree | 166d00dd77ce70e081b9f32f1e76d422ee937cf6 /src/intel | |
parent | 3ee3024804f9817dfa4f9ee4fa3d6b963a84c9cb (diff) |
intel/fs: Don't loop when lowering CS intrinsics
This was needed when certain intrinsics were lowered to other ones
that were defined by the same pass. After 060817b2 "intel,nir: Move
gl_LocalInvocationID lowering to nir_lower_system_values" we don't
need the loop anymore.
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/compiler/brw_nir_lower_cs_intrinsics.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/intel/compiler/brw_nir_lower_cs_intrinsics.c b/src/intel/compiler/brw_nir_lower_cs_intrinsics.c index 6180e6a706b..434ad005281 100644 --- a/src/intel/compiler/brw_nir_lower_cs_intrinsics.c +++ b/src/intel/compiler/brw_nir_lower_cs_intrinsics.c @@ -193,11 +193,10 @@ brw_nir_lower_cs_intrinsics(nir_shader *nir, { assert(nir->info.stage == MESA_SHADER_COMPUTE); - bool progress = false; - struct lower_intrinsics_state state; - memset(&state, 0, sizeof(state)); - state.nir = nir; - state.dispatch_width = dispatch_width; + struct lower_intrinsics_state state = { + .nir = nir, + .dispatch_width = dispatch_width, + }; assert(!nir->info.cs.local_size_variable); state.local_workgroup_size = nir->info.cs.local_size[0] * @@ -212,16 +211,12 @@ brw_nir_lower_cs_intrinsics(nir_shader *nir, assert(state.local_workgroup_size % 4 == 0); } - do { - state.progress = false; - nir_foreach_function(function, nir) { - if (function->impl) { - state.impl = function->impl; - lower_cs_intrinsics_convert_impl(&state); - } + nir_foreach_function(function, nir) { + if (function->impl) { + state.impl = function->impl; + lower_cs_intrinsics_convert_impl(&state); } - progress |= state.progress; - } while (state.progress); + } - return progress; + return state.progress; } |