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