| 13834 | } |
| 13835 | |
| 13836 | void VmaAllocator_T::GetBufferMemoryRequirements( |
| 13837 | VkBuffer hBuffer, |
| 13838 | VkMemoryRequirements& memReq, |
| 13839 | bool& requiresDedicatedAllocation, |
| 13840 | bool& prefersDedicatedAllocation) const |
| 13841 | { |
| 13842 | #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 |
| 13843 | if(m_UseKhrDedicatedAllocation || m_VulkanApiVersion >= VK_MAKE_VERSION(1, 1, 0)) |
| 13844 | { |
| 13845 | VkBufferMemoryRequirementsInfo2KHR memReqInfo = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR }; |
| 13846 | memReqInfo.buffer = hBuffer; |
| 13847 | |
| 13848 | VkMemoryDedicatedRequirementsKHR memDedicatedReq = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR }; |
| 13849 | |
| 13850 | VkMemoryRequirements2KHR memReq2 = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR }; |
| 13851 | VmaPnextChainPushFront(&memReq2, &memDedicatedReq); |
| 13852 | |
| 13853 | (*m_VulkanFunctions.vkGetBufferMemoryRequirements2KHR)(m_hDevice, &memReqInfo, &memReq2); |
| 13854 | |
| 13855 | memReq = memReq2.memoryRequirements; |
| 13856 | requiresDedicatedAllocation = (memDedicatedReq.requiresDedicatedAllocation != VK_FALSE); |
| 13857 | prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE); |
| 13858 | } |
| 13859 | else |
| 13860 | #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000 |
| 13861 | { |
| 13862 | (*m_VulkanFunctions.vkGetBufferMemoryRequirements)(m_hDevice, hBuffer, &memReq); |
| 13863 | requiresDedicatedAllocation = false; |
| 13864 | prefersDedicatedAllocation = false; |
| 13865 | } |
| 13866 | } |
| 13867 | |
| 13868 | void VmaAllocator_T::GetImageMemoryRequirements( |
| 13869 | VkImage hImage, |
no test coverage detected