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));
|
_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++) {
|
if (gfx_state->stages) {
|
||||||
const struct radv_shader_stage *stage = &gfx_state->stages[s];
|
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)
|
if (stage->stage == MESA_SHADER_NONE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
_mesa_sha1_update(&ctx, stage->shader_sha1, sizeof(stage->shader_sha1));
|
_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->key, sizeof(stage->key));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_mesa_sha1_final(&ctx, hash);
|
_mesa_sha1_final(&ctx, hash);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue