From 4d291ac4a902fbdae476a83dc11a9995189fb52a Mon Sep 17 00:00:00 2001 From: assiduous Date: Thu, 17 Sep 2020 10:51:49 -0700 Subject: Updated unified buffers logic: removed implicit decay to DEFAULT bufers --- Graphics/GraphicsEngineVulkan/src/BufferVkImpl.cpp | 33 +++++++--------------- 1 file changed, 10 insertions(+), 23 deletions(-) (limited to 'Graphics/GraphicsEngineVulkan') diff --git a/Graphics/GraphicsEngineVulkan/src/BufferVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/BufferVkImpl.cpp index 3e3419b6..8edb3472 100644 --- a/Graphics/GraphicsEngineVulkan/src/BufferVkImpl.cpp +++ b/Graphics/GraphicsEngineVulkan/src/BufferVkImpl.cpp @@ -182,25 +182,6 @@ BufferVkImpl::BufferVkImpl(IReferenceCounters* pRefCounters, VkMemoryRequirements MemReqs = LogicalDevice.GetBufferMemoryRequirements(m_VulkanBuffer); uint32_t MemoryTypeIndex = VulkanUtilities::VulkanPhysicalDevice::InvalidMemoryTypeIndex; - if (m_Desc.Usage == USAGE_UNIFIED) - { - // Attempt to find device-local and CPU-visible memory type - // clang-format off - MemoryTypeIndex = PhysicalDevice.GetMemoryTypeIndex( - MemReqs.memoryTypeBits, - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - (((m_Desc.CPUAccessFlags & CPU_ACCESS_READ) != 0) ? VK_MEMORY_PROPERTY_HOST_CACHED_BIT : 0) | - (((m_Desc.CPUAccessFlags & CPU_ACCESS_WRITE) != 0) ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT : 0) - ); - // clang-format on - if (MemoryTypeIndex == VulkanUtilities::VulkanPhysicalDevice::InvalidMemoryTypeIndex) - { - DecayUnifiedBuffer(); - } - } - - if (MemoryTypeIndex == VulkanUtilities::VulkanPhysicalDevice::InvalidMemoryTypeIndex) { VkMemoryPropertyFlags vkMemoryFlags = 0; switch (m_Desc.Usage) @@ -212,12 +193,18 @@ BufferVkImpl::BufferVkImpl(IReferenceCounters* pRefCounters, break; case USAGE_STAGING: - // clang-format off - vkMemoryFlags = + vkMemoryFlags = + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | + (((m_Desc.CPUAccessFlags & CPU_ACCESS_READ) != 0) ? VK_MEMORY_PROPERTY_HOST_CACHED_BIT : 0) | + (((m_Desc.CPUAccessFlags & CPU_ACCESS_WRITE) != 0) ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT : 0); + break; + + case USAGE_UNIFIED: + vkMemoryFlags = + VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - (((m_Desc.CPUAccessFlags & CPU_ACCESS_READ) != 0) ? VK_MEMORY_PROPERTY_HOST_CACHED_BIT : 0) | + (((m_Desc.CPUAccessFlags & CPU_ACCESS_READ) != 0) ? VK_MEMORY_PROPERTY_HOST_CACHED_BIT : 0) | (((m_Desc.CPUAccessFlags & CPU_ACCESS_WRITE) != 0) ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT : 0); - // clang-format on break; default: -- cgit v1.2.3