From 993c64e6fe70d458ad76b86232aabb4196d3a9a9 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Tue, 16 Jun 2020 14:46:08 +0200 Subject: [PATCH] ac/llvm: load 1 byte at a time if unaligned on gfx10 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If buffer or stride is unaligned we use the same trick as on gfx6: load 1 byte at a time and recompose the output if needed. This change fixes lots of deqp/glcts tests: - dEQP-GLES2.functional.draw.random.1, 10, ... - dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_17, ... - dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads256, ... - dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_1, ... - dEQP-GLES31.functional.draw_indirect.random.14, ... Reviewed-by: Marek Olšák Part-of: --- src/amd/llvm/ac_llvm_build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/llvm/ac_llvm_build.c b/src/amd/llvm/ac_llvm_build.c index 69b1deaa8b2..77681834ffa 100644 --- a/src/amd/llvm/ac_llvm_build.c +++ b/src/amd/llvm/ac_llvm_build.c @@ -1651,7 +1651,7 @@ ac_build_opencoded_load_format(struct ac_llvm_context *ctx, } int log_recombine = 0; - if (ctx->chip_class == GFX6 && !known_aligned) { + if ((ctx->chip_class == GFX6 || ctx->chip_class == GFX10) && !known_aligned) { /* Avoid alignment restrictions by loading one byte at a time. */ load_num_channels <<= load_log_size; log_recombine = load_log_size; -- 2.30.2