On 04/23/2018 06:55 PM, Nicolai Hähnle wrote:
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-sta...@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@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?

cubes should have 3 coordinates for textureQueryLod(), no?


With that:

Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>



+            break;
+        default:
+            break;
+        }
+    }
+
      if (a->offset)
          args[num_addr++] = ac_to_integer(ctx, a->offset);
      if (a->bias)



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to