lizzie
3 days ago
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
1 changed files with
13 additions and
11 deletions
-
src/video_core/vulkan_common/vulkan_memory_allocator.cpp
|
|
|
@ -256,18 +256,20 @@ namespace Vulkan { |
|
|
|
device.GetDispatchLoader()); |
|
|
|
} |
|
|
|
|
|
|
|
vk::Buffer |
|
|
|
MemoryAllocator::CreateBuffer(const VkBufferCreateInfo &ci, MemoryUsage usage) const |
|
|
|
{ |
|
|
|
vk::Buffer MemoryAllocator::CreateBuffer(const VkBufferCreateInfo &ci, MemoryUsage usage) const { |
|
|
|
// MESA will do memcpy() if not marked as host cached, so just force mark it for most buffers
|
|
|
|
auto const anv_flags = (usage == MemoryUsage::Stream |
|
|
|
&& device.GetDriverID() == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA) |
|
|
|
? VK_MEMORY_PROPERTY_HOST_CACHED_BIT : 0; |
|
|
|
const VmaAllocationCreateInfo alloc_ci = { |
|
|
|
.flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT | MemoryUsageVmaFlags(usage), |
|
|
|
.usage = MemoryUsageVma(usage), |
|
|
|
.requiredFlags = 0, |
|
|
|
.preferredFlags = MemoryUsagePreferredVmaFlags(usage), |
|
|
|
.memoryTypeBits = usage == MemoryUsage::Stream ? 0u : valid_memory_types, |
|
|
|
.pool = VK_NULL_HANDLE, |
|
|
|
.pUserData = nullptr, |
|
|
|
.priority = 0.f, |
|
|
|
.flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT | MemoryUsageVmaFlags(usage), |
|
|
|
.usage = MemoryUsageVma(usage), |
|
|
|
.requiredFlags = 0, |
|
|
|
.preferredFlags = MemoryUsagePreferredVmaFlags(usage) | anv_flags, |
|
|
|
.memoryTypeBits = usage == MemoryUsage::Stream ? 0u : valid_memory_types, |
|
|
|
.pool = VK_NULL_HANDLE, |
|
|
|
.pUserData = nullptr, |
|
|
|
.priority = 0.f, |
|
|
|
}; |
|
|
|
|
|
|
|
VkBuffer handle{}; |
|
|
|
|