From 0dc8f9531656049a95d4179eb973c96d4ee8eb45 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Mon, 11 May 2026 11:00:31 +0200 Subject: [PATCH] radeonsi/sqtt: hash only the relevant part of the shader key Fixes "use of uninitialized memory" warning from valgrind. Reviewed-by: Yogesh Mohan Marimuthu Part-of: --- src/gallium/drivers/radeonsi/si_state_draw.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index 543a02c30ff..78b6b294bbe 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -48,7 +48,14 @@ static inline uint32_t hash_shader_for_sqtt(XXH64_state_t* xh, struct si_shader *shader) { /* Hash the key. */ - XXH64_update(xh, &shader->key, sizeof(shader->key)); + if (shader->selector->stage == MESA_SHADER_FRAGMENT) { + XXH64_update(xh, &shader->key.ps, sizeof(shader->key.ps)); + } else { + const unsigned key_size = + sizeof(shader->key.ge) - sizeof(shader->key.ge.opt.inlined_uniform_values) + + shader->key.ge.opt.inline_uniforms * sizeof(shader->key.ge.opt.inlined_uniform_values[0]); + XXH64_update(xh, &shader->key.ge, key_size); + } /* Hash the main part binary. */ XXH64_update(xh, shader->binary.code_buffer, shader->binary.code_size);