nir: Fix clamping of uints for image store lowering.
authorEric Anholt <eric@anholt.net>
Sat, 15 Dec 2018 00:53:18 +0000 (16:53 -0800)
committerJason Ekstrand <jason@jlekstrand.net>
Mon, 17 Dec 2018 20:02:22 +0000 (20:02 +0000)
I botched some copy-and-paste and clamped to signed int max instead of
uint max.  Fixes KHR-GL46.shader_image_load_store.multiple-uniforms on
skl.

Fixes: d3e046e76c06 ("nir: Pull some of intel's image load/store format
conversion to nir_format.h")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_format_convert.h

index 9c8d0d21e0a89b694b7d7ee04a9740950a2e7196..c5d69ba5a37c61b7a7082191fc83314473794c55 100644 (file)
@@ -307,7 +307,7 @@ nir_format_clamp_uint(nir_builder *b, nir_ssa_def *f, const unsigned *bits)
    nir_const_value max;
    for (unsigned i = 0; i < f->num_components; i++) {
       assert(bits[i] < 32);
-      max.i32[i] = (1 << (bits[i] - 1)) - 1;
+      max.u32[i] = (1 << bits[i]) - 1;
    }
    return nir_umin(b, f, nir_build_imm(b, f->num_components, 32, max));
 }