radv: Do not hash vk_object_base in descriptor set layout.

It contains potentially pointer-y stuff.

Fixes: 178adfa6a8 ("radv: use the base object struct types")
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8809>
This commit is contained in:
Bas Nieuwenhuizen 2021-02-01 13:19:26 +01:00 committed by Marge Bot
parent e870796113
commit 1eaefe6cfd
1 changed files with 7 additions and 1 deletions

View File

@ -503,7 +503,13 @@ VkResult radv_CreatePipelineLayout(
}
dynamic_offset_count += layout->set[set].dynamic_offset_count;
dynamic_shader_stages |= layout->set[set].dynamic_offset_stages;
_mesa_sha1_update(&ctx, set_layout, set_layout->layout_size);
/* Hash the entire set layout except for the vk_object_base. The
* rest of the set layout is carefully constructed to not have
* pointers so a full hash instead of a per-field hash should be ok. */
_mesa_sha1_update(&ctx,
(const char*)set_layout + sizeof(struct vk_object_base),
set_layout->layout_size - sizeof(struct vk_object_base));
}
layout->dynamic_offset_count = dynamic_offset_count;