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 <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17696>
This commit is contained in:
parent
8ec81a4b11
commit
eb1f00aaac
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue