[Mesa-dev] [PATCH] ac: fix the number of coordinates for ac_image_get_lod and arrays
Nicolai Hähnle
nhaehnle at gmail.com
Mon Apr 23 16:55:44 UTC 2018
On 23.04.2018 17:52, Samuel Pitoiset wrote:
> This fixes crashes for the following CTS:
> dEQP-VK.glsl.texture_functions.query.texturequerylod.*
>
> Fixes: 625dcbbc456 ("amd/common: pass address components individually to
> ac_build_image_intrinsic")
> Cc: 18.1 <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/amd/common/ac_llvm_build.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
> index 02739f9da9c..d5bad3eeea3 100644
> --- a/src/amd/common/ac_llvm_build.c
> +++ b/src/amd/common/ac_llvm_build.c
> @@ -1521,6 +1521,19 @@ 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:
> + num_coords = 2;
This is probably also needed for cube maps, isn't it?
With that:
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
> + break;
> + default:
> + break;
> + }
> + }
> +
> if (a->offset)
> args[num_addr++] = ac_to_integer(ctx, a->offset);
> if (a->bias)
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list