Mesa (master): nir/serialize: cast swizzle before shifting

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Dec 21 11:22:11 UTC 2019


Module: Mesa
Branch: master
Commit: c83b1a4560284153e78bbd836556340356dc30fb
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c83b1a4560284153e78bbd836556340356dc30fb

Author: Karol Herbst <kherbst at redhat.com>
Date:   Wed Dec 11 16:01:15 2019 +0100

nir/serialize: cast swizzle before shifting

fixes undefined behaviour with enabled vec16

Signed-off-by: Karol Herbst <kherbst at redhat.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>

---

 src/compiler/nir/nir_serialize.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_serialize.c b/src/compiler/nir/nir_serialize.c
index 49a353d4e10..b991b1d02e2 100644
--- a/src/compiler/nir/nir_serialize.c
+++ b/src/compiler/nir/nir_serialize.c
@@ -879,7 +879,7 @@ write_alu(write_ctx *ctx, const nir_alu_instr *alu)
                unsigned value = 0;
 
                for (unsigned j = 0; j < 8 && o + j < src_channels; j++) {
-                  value |= alu->src[i].swizzle[o + j] <<
+                  value |= (uint32_t)alu->src[i].swizzle[o + j] <<
                            (4 * j); /* 4 bits per swizzle */
                }
 




More information about the mesa-commit mailing list