Reviewed-by: Lionel Landwerlin <[email protected]>
On 13/10/17 06:48, Jason Ekstrand wrote:
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.
---
src/compiler/nir/nir_lower_system_values.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/compiler/nir/nir_lower_system_values.c
b/src/compiler/nir/nir_lower_system_values.c
index c21a468..f3db3847 100644
--- a/src/compiler/nir/nir_lower_system_values.c
+++ b/src/compiler/nir/nir_lower_system_values.c
@@ -124,8 +124,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;
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev