summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2018-12-15 09:57:26 -0600
committerEmil Velikov <emil.l.velikov@gmail.com>2019-01-11 19:19:09 +0000
commit39b2d2fe087f79f1f631254389411cab75817766 (patch)
tree336b536f0b714ee208d77855adc689a3a2907ac9
parentca8ef8234e5564568cf4b96d3fc337d8941dbc6c (diff)
spirv: Sign-extend array indices
The SPIR-V spec was recently updated to clarify that array indices are treated as signed integers. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (cherry picked from commit c59f07684c0c99fad0c246dd4a475f6bef5d3cbc) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Conflicts: src/compiler/spirv/vtn_variables.c
-rw-r--r--src/compiler/spirv/vtn_variables.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
index f3e64d2a819..0eb9f263436 100644
--- a/src/compiler/spirv/vtn_variables.c
+++ b/src/compiler/spirv/vtn_variables.c
@@ -132,12 +132,12 @@ vtn_access_link_as_ssa(struct vtn_builder *b, struct vtn_access_link link,
} else if (stride == 1) {
nir_ssa_def *ssa = vtn_ssa_value(b, link.id)->def;
if (ssa->bit_size != 32)
- ssa = nir_u2u32(&b->nb, ssa);
+ ssa = nir_i2i32(&b->nb, ssa);
return ssa;
} else {
nir_ssa_def *src0 = vtn_ssa_value(b, link.id)->def;
if (src0->bit_size != 32)
- src0 = nir_u2u32(&b->nb, src0);
+ src0 = nir_i2i32(&b->nb, src0);
return nir_imul(&b->nb, src0, nir_imm_int(&b->nb, stride));
}
}