Module: Mesa Branch: main Commit: eb1f00aaac9bd653acd6293ab82bdd26d84460fe URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb1f00aaac9bd653acd6293ab82bdd26d84460fe
Author: Jason Ekstrand <[email protected]> Date: Tue Jul 19 21:37:11 2022 -0500 vulkan: Allow up to 12 pointers in multialloc vk_graphics_pipeline_state_init() may allocate up to 12 things so expand vk_multialloc accordingly. Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17696> --- src/vulkan/util/vk_alloc.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/vulkan/util/vk_alloc.h b/src/vulkan/util/vk_alloc.h index c01c7c5fb0a..973f54c4cd1 100644 --- a/src/vulkan/util/vk_alloc.h +++ b/src/vulkan/util/vk_alloc.h @@ -181,7 +181,7 @@ struct vk_multialloc { size_t align; uint32_t ptr_count; - void **ptrs[8]; + void **ptrs[12]; }; #define VK_MULTIALLOC(_name) \ @@ -244,7 +244,7 @@ vk_multialloc_alloc(struct vk_multialloc *ma, * constant, GCC is incapable of figuring this out and unrolling the loop * so we have to give it a little help. */ - STATIC_ASSERT(ARRAY_SIZE(ma->ptrs) == 8); + STATIC_ASSERT(ARRAY_SIZE(ma->ptrs) == 12); #define _VK_MULTIALLOC_UPDATE_POINTER(_i) \ if ((_i) < ma->ptr_count) \ *ma->ptrs[_i] = (char *)ptr + (uintptr_t)*ma->ptrs[_i] @@ -256,6 +256,10 @@ vk_multialloc_alloc(struct vk_multialloc *ma, _VK_MULTIALLOC_UPDATE_POINTER(5); _VK_MULTIALLOC_UPDATE_POINTER(6); _VK_MULTIALLOC_UPDATE_POINTER(7); + _VK_MULTIALLOC_UPDATE_POINTER(8); + _VK_MULTIALLOC_UPDATE_POINTER(9); + _VK_MULTIALLOC_UPDATE_POINTER(10); + _VK_MULTIALLOC_UPDATE_POINTER(11); #undef _VK_MULTIALLOC_UPDATE_POINTER return ptr;
