diff options
author | Alexander Hartmann <alex.hart.278@gmail.com> | 2023-11-13 01:05:05 +0100 |
---|---|---|
committer | Alexander Hartmann <alex.hart.278@gmail.com> | 2023-11-15 14:46:25 +0100 |
commit | 04a142cf7116c6397b0b4fb5f64951968148a8d6 (patch) | |
tree | b5e565215f02ffc93b12d715057e932fcaeb793e /drivers/vulkan/rendering_device_vulkan.cpp | |
parent | 64150060f89677eaf11229813ae6c5cf8a873802 (diff) | |
download | redot-engine-04a142cf7116c6397b0b4fb5f64951968148a8d6.tar.gz |
Vulkan: Fix incorrect access to the buffers on Android
Diffstat (limited to 'drivers/vulkan/rendering_device_vulkan.cpp')
-rw-r--r-- | drivers/vulkan/rendering_device_vulkan.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/vulkan/rendering_device_vulkan.cpp b/drivers/vulkan/rendering_device_vulkan.cpp index c3a365a3b8..f1740aa95f 100644 --- a/drivers/vulkan/rendering_device_vulkan.cpp +++ b/drivers/vulkan/rendering_device_vulkan.cpp @@ -1365,6 +1365,9 @@ Error RenderingDeviceVulkan::_buffer_allocate(Buffer *p_buffer, uint32_t p_size, allocInfo.memoryTypeBits = 0; allocInfo.pool = nullptr; allocInfo.pUserData = nullptr; + if (p_mem_usage == VMA_MEMORY_USAGE_AUTO_PREFER_HOST) { + allocInfo.requiredFlags = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + } if (p_size <= SMALL_ALLOCATION_MAX_SIZE) { uint32_t mem_type_index = 0; vmaFindMemoryTypeIndexForBufferInfo(allocator, &bufferInfo, &allocInfo, &mem_type_index); @@ -1410,7 +1413,7 @@ Error RenderingDeviceVulkan::_insert_staging_block() { VmaAllocationCreateInfo allocInfo; allocInfo.flags = VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT; allocInfo.usage = VMA_MEMORY_USAGE_AUTO_PREFER_HOST; - allocInfo.requiredFlags = 0; + allocInfo.requiredFlags = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; allocInfo.preferredFlags = 0; allocInfo.memoryTypeBits = 0; allocInfo.pool = nullptr; |