mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 07:18:17 +02:00
nak: Move lowering of load_*_id to lower_vtg_io.c
Reviewed-by: Mary Guillemard <mary@mary.zone> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40512>
This commit is contained in:
parent
3ea2e51c8b
commit
ffdc6d3c75
2 changed files with 15 additions and 17 deletions
|
|
@ -474,23 +474,6 @@ nak_nir_lower_system_value_intrin(nir_builder *b, nir_intrinsic_instr *intrin,
|
|||
|
||||
nir_def *val;
|
||||
switch (intrin->intrinsic) {
|
||||
case nir_intrinsic_load_primitive_id:
|
||||
case nir_intrinsic_load_instance_id:
|
||||
case nir_intrinsic_load_vertex_id: {
|
||||
assert(b->shader->info.stage != MESA_SHADER_VERTEX ||
|
||||
b->shader->info.stage != MESA_SHADER_TESS_CTRL ||
|
||||
b->shader->info.stage == MESA_SHADER_TESS_EVAL ||
|
||||
b->shader->info.stage == MESA_SHADER_GEOMETRY);
|
||||
const gl_system_value sysval =
|
||||
nir_system_value_from_intrinsic(intrin->intrinsic);
|
||||
const uint32_t addr = nak_sysval_attr_addr(nak, sysval);
|
||||
val = nir_ald_nv(b, 1, nir_imm_int(b, 0), nir_imm_int(b, 0),
|
||||
.base = addr, .flags = 0,
|
||||
.range_base = addr, .range = 4,
|
||||
.access = ACCESS_CAN_REORDER);
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_load_patch_vertices_in: {
|
||||
val = nak_nir_load_sysval(b, NAK_SV_PRIM_TYPE, ACCESS_CAN_REORDER);
|
||||
val = nir_extract_u8(b, val, nir_imm_int(b, 1));
|
||||
|
|
|
|||
|
|
@ -58,6 +58,21 @@ lower_vtg_io_intrin(nir_builder *b,
|
|||
|
||||
nir_def *vtx = NULL, *offset = NULL, *data = NULL;
|
||||
switch (intrin->intrinsic) {
|
||||
case nir_intrinsic_load_primitive_id:
|
||||
case nir_intrinsic_load_instance_id:
|
||||
case nir_intrinsic_load_vertex_id: {
|
||||
/* These still input loads but they're a special case */
|
||||
const gl_system_value sysval =
|
||||
nir_system_value_from_intrinsic(intrin->intrinsic);
|
||||
const uint32_t addr = nak_sysval_attr_addr(nak, sysval);
|
||||
nir_def *val = nir_ald_nv(b, 1, nir_imm_int(b, 0), nir_imm_int(b, 0),
|
||||
.base = addr, .flags = 0,
|
||||
.range_base = addr, .range = 4,
|
||||
.access = ACCESS_CAN_REORDER);
|
||||
nir_def_rewrite_uses(&intrin->def, val);
|
||||
return true;
|
||||
}
|
||||
|
||||
case nir_intrinsic_load_input:
|
||||
case nir_intrinsic_load_output:
|
||||
offset = intrin->src[0].ssa;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue