nir/lower_system_values: Lower SUBGROUP_*_MASK based on type
The SUBGROUP_*_MASK system values are uint64_t when coming in from GLSL but uvec4 when coming in from SPIR-V. Lowering based on type allows us to nicely handle both. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
parent
3ee91ee6ac
commit
9b35faba42
|
@ -125,8 +125,9 @@ convert_block(nir_block *block, nir_builder *b)
|
|||
nir_intrinsic_op op =
|
||||
nir_intrinsic_from_system_value(var->data.location);
|
||||
nir_intrinsic_instr *load = nir_intrinsic_instr_create(b->shader, op);
|
||||
nir_ssa_dest_init(&load->instr, &load->dest, 1, 64, NULL);
|
||||
load->num_components = 1;
|
||||
nir_ssa_dest_init_for_type(&load->instr, &load->dest,
|
||||
var->type, NULL);
|
||||
load->num_components = load->dest.ssa.num_components;
|
||||
nir_builder_instr_insert(b, &load->instr);
|
||||
sysval = &load->dest.ssa;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue