mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 20:20:18 +01:00
radv: fix hashing graphics pipeline when no stages are compiled
It's possible with GPL. This fixes a NULL pointer dereference with updated pipeline binaries tests in VKCTS. Cc: mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36999>
This commit is contained in:
parent
b9f060438f
commit
944e26eae7
1 changed files with 8 additions and 6 deletions
|
|
@ -3016,14 +3016,16 @@ radv_graphics_pipeline_hash(const struct radv_device *device, const struct radv_
|
|||
|
||||
_mesa_sha1_update(&ctx, &gfx_state->key.gfx_state, sizeof(gfx_state->key.gfx_state));
|
||||
|
||||
for (unsigned s = 0; s < MESA_VULKAN_SHADER_STAGES; s++) {
|
||||
const struct radv_shader_stage *stage = &gfx_state->stages[s];
|
||||
if (gfx_state->stages) {
|
||||
for (unsigned s = 0; s < MESA_VULKAN_SHADER_STAGES; s++) {
|
||||
const struct radv_shader_stage *stage = &gfx_state->stages[s];
|
||||
|
||||
if (stage->stage == MESA_SHADER_NONE)
|
||||
continue;
|
||||
if (stage->stage == MESA_SHADER_NONE)
|
||||
continue;
|
||||
|
||||
_mesa_sha1_update(&ctx, stage->shader_sha1, sizeof(stage->shader_sha1));
|
||||
_mesa_sha1_update(&ctx, &stage->key, sizeof(stage->key));
|
||||
_mesa_sha1_update(&ctx, stage->shader_sha1, sizeof(stage->shader_sha1));
|
||||
_mesa_sha1_update(&ctx, &stage->key, sizeof(stage->key));
|
||||
}
|
||||
}
|
||||
|
||||
_mesa_sha1_final(&ctx, hash);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue