diff --git a/.pick_status.json b/.pick_status.json index 43f2e7a8dd7..5478927acb5 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -238,7 +238,7 @@ "description": "nir/lower_bool_to_int32: Fix progress reporting", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "6a29cb2654ff059dcb59e3fcaa0bcc982656609d" }, diff --git a/src/compiler/nir/nir_lower_bool_to_int32.c b/src/compiler/nir/nir_lower_bool_to_int32.c index 779520e56bd..3febb73e15f 100644 --- a/src/compiler/nir/nir_lower_bool_to_int32.c +++ b/src/compiler/nir/nir_lower_bool_to_int32.c @@ -169,15 +169,20 @@ nir_lower_bool_to_int32_instr(UNUSED nir_builder *b, bool nir_lower_bool_to_int32(nir_shader *shader) { + bool progress = false; nir_foreach_function(func, shader) { for (unsigned idx = 0; idx < func->num_params; idx++) { nir_parameter *param = &func->params[idx]; - if (param->bit_size == 1) + if (param->bit_size == 1) { param->bit_size = 32; + progress = true; + } } } - return nir_shader_instructions_pass(shader, nir_lower_bool_to_int32_instr, - nir_metadata_block_index | - nir_metadata_dominance, - NULL); + + progress |= + nir_shader_instructions_pass(shader, nir_lower_bool_to_int32_instr, + nir_metadata_block_index | + nir_metadata_dominance, NULL); + return progress; }