mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-09 14:14:39 +02:00
vulkan: move alignment of host-visible allocations outside of ff_vk_alloc_mem
The issue is that if dedicated allocation is used, VkBufferCreateInfo.size and the actual allocated size mismatched, which is a validation error.
This commit is contained in:
parent
3565903c63
commit
9eb7e8d2a4
@ -883,10 +883,6 @@ int ff_vk_alloc_mem(FFVulkanContext *s, VkMemoryRequirements *req,
|
||||
.pNext = alloc_extension,
|
||||
};
|
||||
|
||||
/* Align if we need to */
|
||||
if ((req_flags != UINT32_MAX) && req_flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)
|
||||
req->size = FFALIGN(req->size, s->props.properties.limits.minMemoryMapAlignment);
|
||||
|
||||
alloc_info.allocationSize = req->size;
|
||||
|
||||
/* The vulkan spec requires memory types to be sorted in the "optimal"
|
||||
@ -939,8 +935,9 @@ int ff_vk_create_buf(FFVulkanContext *s, FFVkBuffer *buf, size_t size,
|
||||
.pNext = pNext,
|
||||
.usage = usage,
|
||||
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
|
||||
.size = size, /* Gets FFALIGNED during alloc if host visible
|
||||
but should be ok */
|
||||
.size = flags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT ?
|
||||
FFALIGN(size, s->props.properties.limits.minMemoryMapAlignment) :
|
||||
size,
|
||||
};
|
||||
|
||||
VkMemoryAllocateFlagsInfo alloc_flags = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user