Mesa (master): d3d12: use intrinsic builders

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 6 14:51:28 UTC 2021


Module: Mesa
Branch: master
Commit: 9dd43c9232ca44504d62ba99b3679d6a641455ec
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9dd43c9232ca44504d62ba99b3679d6a641455ec

Author: Christian Gmeiner <christian.gmeiner at gmail.com>
Date:   Sat Jan  2 08:40:37 2021 +0100

d3d12: use intrinsic builders

Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8295>

---

 .../drivers/d3d12/d3d12_lower_point_sprite.c       |  8 ++----
 src/gallium/drivers/d3d12/d3d12_nir_passes.c       | 30 ++++++++--------------
 2 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/src/gallium/drivers/d3d12/d3d12_lower_point_sprite.c b/src/gallium/drivers/d3d12/d3d12_lower_point_sprite.c
index 8cdd350d998..79fa759e2cb 100644
--- a/src/gallium/drivers/d3d12/d3d12_lower_point_sprite.c
+++ b/src/gallium/drivers/d3d12/d3d12_lower_point_sprite.c
@@ -192,15 +192,11 @@ lower_emit_vertex(nir_intrinsic_instr *instr, nir_builder *b, struct lower_state
          nir_store_var(b, state->point_coord_out[j], point_coord, 0xf);
 
       /* EmitVertex */
-      instr = nir_intrinsic_instr_create(b->shader, nir_intrinsic_emit_vertex);
-      nir_intrinsic_set_stream_id(instr, stream_id);
-      nir_builder_instr_insert(b, &instr->instr);
+      nir_emit_vertex(b, .stream_id = stream_id);
    }
 
    /* EndPrimitive */
-   instr = nir_intrinsic_instr_create(b->shader, nir_intrinsic_end_primitive);
-   nir_intrinsic_set_stream_id(instr, stream_id);
-   nir_builder_instr_insert(b, &instr->instr);
+   nir_end_primitive(b, .stream_id = stream_id);
 
    /* Reset everything */
    state->point_pos = NULL;
diff --git a/src/gallium/drivers/d3d12/d3d12_nir_passes.c b/src/gallium/drivers/d3d12/d3d12_nir_passes.c
index 83beea4c562..2686926eb97 100644
--- a/src/gallium/drivers/d3d12/d3d12_nir_passes.c
+++ b/src/gallium/drivers/d3d12/d3d12_nir_passes.c
@@ -438,21 +438,16 @@ lower_instr(nir_intrinsic_instr *instr, nir_builder *b,
    enum d3d12_state_var var = variable->state_slots[0].tokens[2];
    nir_ssa_def *ubo_idx = nir_imm_int(b, binding);
    nir_ssa_def *ubo_offset =  nir_imm_int(b, get_state_var_offset(shader, var) * 4);
-   nir_intrinsic_instr *load =
-      nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_ubo);
-   load->num_components = instr->num_components;
-   load->src[0] = nir_src_for_ssa(ubo_idx);
-   load->src[1] = nir_src_for_ssa(ubo_offset);
-   assert(instr->dest.ssa.bit_size >= 8);
-   nir_intrinsic_set_align(load, instr->dest.ssa.bit_size / 8, 0);
-   nir_intrinsic_set_range_base(load, 0);
-   nir_intrinsic_set_range(load, ~0);
-
-   nir_ssa_dest_init(&load->instr, &load->dest,
-                     load->num_components, instr->dest.ssa.bit_size,
-                     instr->dest.ssa.name);
-   nir_builder_instr_insert(b, &load->instr);
-   nir_ssa_def_rewrite_uses(&instr->dest.ssa, nir_src_for_ssa(&load->dest.ssa));
+   nir_ssa_def *load =
+      nir_load_ubo(b, instr->num_components, instr->dest.ssa.bit_size,
+                   ubo_idx, ubo_offset,
+                   .align_mul = instr->dest.ssa.bit_size / 8,
+                   .align_offset = 0,
+                   .range_base = 0,
+                   .range = ~0,
+                   );
+
+   nir_ssa_def_rewrite_uses(&instr->dest.ssa, nir_src_for_ssa(load));
 
    /* Remove the old load_* instruction and any parent derefs */
    nir_instr_remove(&instr->instr);
@@ -886,7 +881,6 @@ lower_triangle_strip_emit_vertex(nir_builder *b, nir_intrinsic_instr *intr,
     * vertex_count++;
     */
 
-   nir_intrinsic_instr *instr;
    nir_ssa_def *two = nir_imm_int(b, 2);
    nir_ssa_def *vertex_count = nir_load_var(b, vertex_count_var);
    nir_ssa_def *count_cmp = nir_uge(b, vertex_count, two);
@@ -909,9 +903,7 @@ lower_triangle_strip_emit_vertex(nir_builder *b, nir_intrinsic_instr *intr,
                         nir_build_deref_array(b, nir_build_deref_var(b, varyings[i]), two));
    }
 
-   instr = nir_intrinsic_instr_create(b->shader, nir_intrinsic_end_primitive);
-   nir_intrinsic_set_stream_id(instr, 0);
-   nir_builder_instr_insert(b, &instr->instr);
+   nir_end_primitive(b, .stream_id = 0);
 
    nir_pop_if(b, count_check);
 



More information about the mesa-commit mailing list