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