summaryrefslogtreecommitdiffstats
path: root/src/glsl/nir/nir_builder.h
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-12-14 18:46:16 -0800
committerJason Ekstrand <[email protected]>2015-12-15 14:12:31 -0800
commitf6910f072a4117da442ca30d0358f6f79380667e (patch)
tree3748c104a0368892c30d71f503b682a1a3ea5c66 /src/glsl/nir/nir_builder.h
parentca5be008bc55a5190171d91994c3251fddb4d8d9 (diff)
nir/builder: Add a load_system_value helper
While we're at it, go ahead and make nir_lower_clip use it. Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/glsl/nir/nir_builder.h')
-rw-r--r--src/glsl/nir/nir_builder.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/glsl/nir/nir_builder.h b/src/glsl/nir/nir_builder.h
index b909f483579..332bb0246df 100644
--- a/src/glsl/nir/nir_builder.h
+++ b/src/glsl/nir/nir_builder.h
@@ -322,4 +322,16 @@ nir_store_var(nir_builder *build, nir_variable *var, nir_ssa_def *value)
nir_builder_instr_insert(build, &store->instr);
}
+static inline nir_ssa_def *
+nir_load_system_value(nir_builder *build, nir_intrinsic_op op, int index)
+{
+ nir_intrinsic_instr *load = nir_intrinsic_instr_create(build->shader, op);
+ load->num_components = nir_intrinsic_infos[op].dest_components;
+ load->const_index[0] = index;
+ nir_ssa_dest_init(&load->instr, &load->dest,
+ nir_intrinsic_infos[op].dest_components, NULL);
+ nir_builder_instr_insert(build, &load->instr);
+ return &load->dest.ssa;
+}
+
#endif /* NIR_BUILDER_H */