nir/lower_locals_to_regs: Add bool bitsize knob
GLSL booleans (and hence bool derefs) may be translated either as 1-bit or 32-bit NIR registers, depending whether the backend uses nir_lower_bool_to_int32 or not. Add a knob for this and choose the right type for different backends. Fixes nir_validate failure on dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_bvec3 run under lavapipe. That test indexes into a bvec3 array, and gallivm first lowers bools and then lowers derefs to registers, resulting in random 1-bit booleans mixed in with 32-bit bools. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23804>
This commit is contained in:
@@ -1701,7 +1701,7 @@ brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler,
|
||||
OPT(nir_copy_prop);
|
||||
OPT(nir_opt_dce);
|
||||
|
||||
OPT(nir_lower_locals_to_regs);
|
||||
OPT(nir_lower_locals_to_regs, 32);
|
||||
|
||||
if (unlikely(debug_enabled)) {
|
||||
/* Re-index SSA defs so we print more sensible numbers. */
|
||||
|
Reference in New Issue
Block a user