Lines Matching refs:ma
171 * VK_MULTIALLOC(ma)
172 * vk_multialloc_add(&ma, &main_ptr, 1);
173 * vk_multialloc_add(&ma, &substruct1, substruct1Count);
174 * vk_multialloc_add(&ma, &substruct2, substruct2Count);
176 * if (!vk_multialloc_alloc(&ma, pAllocator, VK_ALLOCATION_SCOPE_FOO))
191 vk_multialloc_add_size_align(struct vk_multialloc *ma,
200 size_t offset = ALIGN_POT(ma->size, align);
201 ma->size = offset + size;
202 ma->align = MAX2(ma->align, align);
207 assert(ma->ptr_count < ARRAY_SIZE(ma->ptrs));
208 ma->ptrs[ma->ptr_count++] = ptr;
230 vk_multialloc_alloc(struct vk_multialloc *ma,
234 void *ptr = vk_alloc(alloc, ma->size, ma->align, scope);
240 * for (uint32_t i = 0; i < ma->ptr_count; i++)
241 * *ma->ptrs[i] = ptr + (uintptr_t)*ma->ptrs[i];
243 * Unfortunately, even though ma->ptr_count is basically guaranteed to be a
247 STATIC_ASSERT(ARRAY_SIZE(ma->ptrs) == 12);
249 if ((_i) < ma->ptr_count) \
250 *ma->ptrs[_i] = (char *)ptr + (uintptr_t)*ma->ptrs[_i]
269 vk_multialloc_alloc2(struct vk_multialloc *ma,
274 return vk_multialloc_alloc(ma, alloc ? alloc : parent_alloc, scope);
278 vk_multialloc_zalloc(struct vk_multialloc *ma,
282 void *ptr = vk_multialloc_alloc(ma, alloc, scope);
287 memset(ptr, 0, ma->size);
293 vk_multialloc_zalloc2(struct vk_multialloc *ma,
298 return vk_multialloc_zalloc(ma, alloc ? alloc : parent_alloc, scope);