aco: fix image load/store with lod and 1D images
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 5 Mar 2020 10:32:06 +0000 (11:32 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 5 Mar 2020 13:29:27 +0000 (14:29 +0100)
Make sure to add the lod value if non-null as the 2nd operand.

Fixes dEQP-VK.image.load_store_lod.with_format.1d.* on all gens
except GFX9.

Fixes: 4d49a7ac737 ("aco: handle nir_intrinsic_image_deref_{load,store} with lod")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4060>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4060>

src/amd/compiler/aco_instruction_selection.cpp

index 414fd811a301120e7663334c1bb14ed4586ec801..a60e57189e3c216c2a4fd91a16d3c5638bc47abc 100644 (file)
@@ -4314,9 +4314,6 @@ static Temp get_image_coords(isel_context *ctx, const nir_intrinsic_instr *instr
       }
    }
 
-   if (count == 1 && !gfx9_1d)
-      return emit_extract_vector(ctx, src0, 0, v1);
-
    if (gfx9_1d) {
       coords[0] = emit_extract_vector(ctx, src0, 0, v1);
       coords.resize(coords.size() + 1);