From: Samuel Pitoiset Date: Mon, 23 Apr 2018 15:05:10 +0000 (+0200) Subject: ac: fix the number of coordinates for ac_image_get_lod and arrays X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d136a5fad9c7e67c1362453388914ecc60420883;p=mesa.git ac: fix the number of coordinates for ac_image_get_lod and arrays This fixes crashes for the following CTS: dEQP-VK.glsl.texture_functions.query.texturequerylod.* Cubemaps are the same as 2D arrays. Fixes: 625dcbbc456 ("amd/common: pass address components individually to ac_build_image_intrinsic") Cc: 18.1 Signed-off-by: Samuel Pitoiset Reviewed-by: Nicolai Hähnle --- diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 02739f9da9c..f21a5d2623c 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -1521,6 +1521,20 @@ LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx, LLVMValueRef addr; unsigned num_addr = 0; + if (a->opcode == ac_image_get_lod) { + switch (a->dim) { + case ac_image_1darray: + num_coords = 1; + break; + case ac_image_2darray: + case ac_image_cube: + num_coords = 2; + break; + default: + break; + } + } + if (a->offset) args[num_addr++] = ac_to_integer(ctx, a->offset); if (a->bias)