mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 01:10:16 +01:00
d3d12: use intrinsic builders
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Jesse Natalie <jenatali@microsoft.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8295>
This commit is contained in:
parent
32bd47f6fa
commit
9dd43c9232
2 changed files with 12 additions and 24 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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_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_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_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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue