r600/sfn: Handle pre-EG GS input fetch

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17822>
This commit is contained in:
Gert Wollny
2022-08-01 08:55:09 +02:00
committed by Marge Bot
parent 675348e65e
commit be7bd71a86

View File

@@ -326,13 +326,21 @@ bool GeometryShader::emit_load_per_vertex_input(nir_intrinsic_instr* instr)
assert(literal_index->u32 < 6);
assert(nir_intrinsic_io_semantics(instr).num_slots == 1);
EVTXDataFormat fmt = chip_class() >= ISA_CC_EVERGREEN ?
fmt_invalid:
fmt_32_32_32_32_float;
auto addr = m_per_vertex_offsets[literal_index->u32];
auto fetch = new LoadFromBuffer(dest, dest_swz, addr,
16 * nir_intrinsic_base(instr),
R600_GS_RING_CONST_BUFFER, nullptr,
fmt_invalid);
fmt);
if (chip_class() >= ISA_CC_EVERGREEN)
fetch->set_fetch_flag(FetchInstr::use_const_field);
fetch->set_fetch_flag(FetchInstr::use_const_field);
fetch->set_num_format(vtx_nf_norm);
fetch->reset_fetch_flag(FetchInstr::format_comp_signed);