diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2018-04-23 17:05:10 +0200 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2018-04-26 10:46:47 -0700 |
commit | 261a40745a66f29f3ee9e4e440c6f454371f1259 (patch) | |
tree | 816cbc0019d2da17234758aab103acd06f8c7796 | |
parent | 523ff149942d9f47fdf8bd556302f767df2e73ef (diff) |
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 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
(cherry picked from commit d136a5fad9c7e67c1362453388914ecc60420883)
-rw-r--r-- | src/amd/common/ac_llvm_build.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 02739f9da9..f21a5d2623 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) |