From 21be5c8edd3ad156f6cbfbceb96e7939716d9f2c Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 4 Nov 2019 15:04:20 +0100 Subject: [PATCH] radeonsi: fix shader disk cache key Use unsigned values otherwise signed extension will produce a 64 bits value where the 32 left-most bits are 1. Fixes: 2afeed30101 ("radeonsi: tell the shader disk cache what IR is used") --- src/gallium/drivers/radeonsi/si_pipe.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 7b68afddcb2..1be3db4602b 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -904,8 +904,9 @@ static void si_disk_cache_create(struct si_screen *sscreen) #define ALL_FLAGS (DBG(SI_SCHED) | DBG(GISEL)) uint64_t shader_debug_flags = sscreen->debug_flags & ALL_FLAGS; /* Reserve left-most bit for tgsi/nir selector */ - assert(!(shader_debug_flags & (1 << 31))); - shader_debug_flags |= ((sscreen->options.enable_nir & 0x1) << 31); + assert(!(shader_debug_flags & (1u << 31))); + shader_debug_flags |= (uint32_t) + ((sscreen->options.enable_nir & 0x1) << 31); /* Add the high bits of 32-bit addresses, which affects * how 32-bit addresses are expanded to 64 bits. -- 2.30.2