Mesa (master): glsl_to_nir: use intrinsic builders
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Nov 26 18:11:47 UTC 2020
Module: Mesa
Branch: master
Commit: ddb81f5da32c0c81e8b9572827f8ae31133d1a7d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ddb81f5da32c0c81e8b9572827f8ae31133d1a7d
Author: Rhys Perry <pendingchaos02 at gmail.com>
Date: Mon Sep 7 14:17:14 2020 +0100
glsl_to_nir: use intrinsic builders
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6587>
---
src/compiler/glsl/glsl_to_nir.cpp | 49 ++++++++++-----------------------------
1 file changed, 12 insertions(+), 37 deletions(-)
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index d0397357b76..86efde80d1a 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -811,44 +811,28 @@ nir_visitor::visit(ir_discard *ir)
* discards will be immediately followed by a return.
*/
- nir_intrinsic_instr *discard;
- if (ir->condition) {
- discard = nir_intrinsic_instr_create(this->shader,
- nir_intrinsic_discard_if);
- discard->src[0] =
- nir_src_for_ssa(evaluate_rvalue(ir->condition));
- } else {
- discard = nir_intrinsic_instr_create(this->shader, nir_intrinsic_discard);
- }
-
- nir_builder_instr_insert(&b, &discard->instr);
+ if (ir->condition)
+ nir_discard_if(&b, evaluate_rvalue(ir->condition));
+ else
+ nir_discard(&b);
}
void
nir_visitor::visit(ir_demote *ir)
{
- nir_intrinsic_instr *demote =
- nir_intrinsic_instr_create(this->shader, nir_intrinsic_demote);
-
- nir_builder_instr_insert(&b, &demote->instr);
+ nir_demote(&b);
}
void
nir_visitor::visit(ir_emit_vertex *ir)
{
- nir_intrinsic_instr *instr =
- nir_intrinsic_instr_create(this->shader, nir_intrinsic_emit_vertex);
- nir_intrinsic_set_stream_id(instr, ir->stream_id());
- nir_builder_instr_insert(&b, &instr->instr);
+ nir_emit_vertex(&b, (unsigned)ir->stream_id());
}
void
nir_visitor::visit(ir_end_primitive *ir)
{
- nir_intrinsic_instr *instr =
- nir_intrinsic_instr_create(this->shader, nir_intrinsic_end_primitive);
- nir_intrinsic_set_stream_id(instr, ir->stream_id());
- nir_builder_instr_insert(&b, &instr->instr);
+ nir_end_primitive(&b, (unsigned)ir->stream_id());
}
void
@@ -2648,21 +2632,12 @@ nir_visitor::visit(ir_dereference_array *ir)
void
nir_visitor::visit(ir_barrier *)
{
- if (shader->info.stage == MESA_SHADER_COMPUTE) {
- nir_intrinsic_instr *shared_barrier =
- nir_intrinsic_instr_create(this->shader,
- nir_intrinsic_memory_barrier_shared);
- nir_builder_instr_insert(&b, &shared_barrier->instr);
- } else if (shader->info.stage == MESA_SHADER_TESS_CTRL) {
- nir_intrinsic_instr *patch_barrier =
- nir_intrinsic_instr_create(this->shader,
- nir_intrinsic_memory_barrier_tcs_patch);
- nir_builder_instr_insert(&b, &patch_barrier->instr);
- }
+ if (shader->info.stage == MESA_SHADER_COMPUTE)
+ nir_memory_barrier_shared(&b);
+ else if (shader->info.stage == MESA_SHADER_TESS_CTRL)
+ nir_memory_barrier_tcs_patch(&b);
- nir_intrinsic_instr *instr =
- nir_intrinsic_instr_create(this->shader, nir_intrinsic_control_barrier);
- nir_builder_instr_insert(&b, &instr->instr);
+ nir_control_barrier(&b);
}
nir_shader *
More information about the mesa-commit
mailing list