diff options
author | Samuel Pitoiset <[email protected]> | 2018-04-23 17:05:10 +0200 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2018-04-23 21:48:38 +0200 |
commit | d136a5fad9c7e67c1362453388914ecc60420883 (patch) | |
tree | 587ae3f2ec64c51ce9e5a7256deb53ecf63837ea | |
parent | 2964e16e5158bfba1fa4da05f12d87ab584c2a1a (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 <[email protected]>
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
-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 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) |