Răsfoiți Sursa

Merge pull request #11734 from Kelebek1/device_local_buffer_alloc

Do not allocate DeviceLocal buffers as mapped
liamwhite 2 ani în urmă
părinte
comite
84b0e29b56
1 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 4 4
      src/video_core/vulkan_common/vulkan_memory_allocator.cpp

+ 4 - 4
src/video_core/vulkan_common/vulkan_memory_allocator.cpp

@@ -66,9 +66,10 @@ struct Range {
     switch (usage) {
     switch (usage) {
     case MemoryUsage::Upload:
     case MemoryUsage::Upload:
     case MemoryUsage::Stream:
     case MemoryUsage::Stream:
-        return VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
+        return VMA_ALLOCATION_CREATE_MAPPED_BIT |
+               VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
     case MemoryUsage::Download:
     case MemoryUsage::Download:
-        return VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT;
+        return VMA_ALLOCATION_CREATE_MAPPED_BIT | VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT;
     case MemoryUsage::DeviceLocal:
     case MemoryUsage::DeviceLocal:
         return {};
         return {};
     }
     }
@@ -252,8 +253,7 @@ vk::Image MemoryAllocator::CreateImage(const VkImageCreateInfo& ci) const {
 
 
 vk::Buffer MemoryAllocator::CreateBuffer(const VkBufferCreateInfo& ci, MemoryUsage usage) const {
 vk::Buffer MemoryAllocator::CreateBuffer(const VkBufferCreateInfo& ci, MemoryUsage usage) const {
     const VmaAllocationCreateInfo alloc_ci = {
     const VmaAllocationCreateInfo alloc_ci = {
-        .flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT |
-                 MemoryUsageVmaFlags(usage),
+        .flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT | MemoryUsageVmaFlags(usage),
         .usage = MemoryUsageVma(usage),
         .usage = MemoryUsageVma(usage),
         .requiredFlags = 0,
         .requiredFlags = 0,
         .preferredFlags = MemoryUsagePreferedVmaFlags(usage),
         .preferredFlags = MemoryUsagePreferedVmaFlags(usage),