From 6aecc316c000c343b25963c1356525f95ea6cafe Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 29 Jan 2020 09:18:20 +0100 Subject: [PATCH] aco: fix VS input loads with MUBUF on GFX6 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Only MTBUF supports vec3. Fixes: 03a0d39366d ("aco: use MUBUF in some situations instead of splitting vertex fetches") Signed-off-by: Samuel Pitoiset Reviewed-by: Daniel Schürmann Tested-by: Marge Bot Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 5859cb5..64f5270 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -3236,8 +3236,14 @@ void visit_load_input(isel_context *ctx, nir_intrinsic_instr *instr) nfmt == V_008F0C_BUF_NUM_FORMAT_SINT) && vtx_info->chan_byte_size == 4; unsigned fetch_dfmt = V_008F0C_BUF_DATA_FORMAT_INVALID; - if (!use_mubuf) + if (!use_mubuf) { fetch_dfmt = get_fetch_data_format(ctx, vtx_info, fetch_offset, attrib_stride, &fetch_size); + } else { + if (fetch_size == 3 && ctx->options->chip_class == GFX6) { + /* GFX6 only supports loading vec3 with MTBUF, expand to vec4. */ + fetch_size = 4; + } + } Temp fetch_index = index; if (attrib_stride != 0 && fetch_offset > attrib_stride) { -- 2.7.4