diff options
Diffstat (limited to 'src/video_core/vulkan_common')
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.cpp | 20 | ||||
| -rw-r--r-- | src/video_core/vulkan_common/vulkan_wrapper.h | 5 |
2 files changed, 18 insertions, 7 deletions
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index d39bbdc70..2aa0ffbe6 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp | |||
| @@ -168,7 +168,7 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept { | |||
| 168 | X(vkFreeCommandBuffers); | 168 | X(vkFreeCommandBuffers); |
| 169 | X(vkFreeDescriptorSets); | 169 | X(vkFreeDescriptorSets); |
| 170 | X(vkFreeMemory); | 170 | X(vkFreeMemory); |
| 171 | X(vkGetBufferMemoryRequirements); | 171 | X(vkGetBufferMemoryRequirements2); |
| 172 | X(vkGetDeviceQueue); | 172 | X(vkGetDeviceQueue); |
| 173 | X(vkGetEventStatus); | 173 | X(vkGetEventStatus); |
| 174 | X(vkGetFenceStatus); | 174 | X(vkGetFenceStatus); |
| @@ -786,10 +786,20 @@ DeviceMemory Device::AllocateMemory(const VkMemoryAllocateInfo& ai) const { | |||
| 786 | return DeviceMemory(memory, handle, *dld); | 786 | return DeviceMemory(memory, handle, *dld); |
| 787 | } | 787 | } |
| 788 | 788 | ||
| 789 | VkMemoryRequirements Device::GetBufferMemoryRequirements(VkBuffer buffer) const noexcept { | 789 | VkMemoryRequirements Device::GetBufferMemoryRequirements(VkBuffer buffer, |
| 790 | VkMemoryRequirements requirements; | 790 | void* pnext) const noexcept { |
| 791 | dld->vkGetBufferMemoryRequirements(handle, buffer, &requirements); | 791 | const VkBufferMemoryRequirementsInfo2 info{ |
| 792 | return requirements; | 792 | .sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, |
| 793 | .pNext = nullptr, | ||
| 794 | .buffer = buffer, | ||
| 795 | }; | ||
| 796 | VkMemoryRequirements2 requirements{ | ||
| 797 | .sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, | ||
| 798 | .pNext = pnext, | ||
| 799 | .memoryRequirements{}, | ||
| 800 | }; | ||
| 801 | dld->vkGetBufferMemoryRequirements2(handle, &info, &requirements); | ||
| 802 | return requirements.memoryRequirements; | ||
| 793 | } | 803 | } |
| 794 | 804 | ||
| 795 | VkMemoryRequirements Device::GetImageMemoryRequirements(VkImage image) const noexcept { | 805 | VkMemoryRequirements Device::GetImageMemoryRequirements(VkImage image) const noexcept { |
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index 7f781b081..3e36d356a 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h | |||
| @@ -283,7 +283,7 @@ struct DeviceDispatch : InstanceDispatch { | |||
| 283 | PFN_vkFreeCommandBuffers vkFreeCommandBuffers{}; | 283 | PFN_vkFreeCommandBuffers vkFreeCommandBuffers{}; |
| 284 | PFN_vkFreeDescriptorSets vkFreeDescriptorSets{}; | 284 | PFN_vkFreeDescriptorSets vkFreeDescriptorSets{}; |
| 285 | PFN_vkFreeMemory vkFreeMemory{}; | 285 | PFN_vkFreeMemory vkFreeMemory{}; |
| 286 | PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements{}; | 286 | PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2{}; |
| 287 | PFN_vkGetDeviceQueue vkGetDeviceQueue{}; | 287 | PFN_vkGetDeviceQueue vkGetDeviceQueue{}; |
| 288 | PFN_vkGetEventStatus vkGetEventStatus{}; | 288 | PFN_vkGetEventStatus vkGetEventStatus{}; |
| 289 | PFN_vkGetFenceStatus vkGetFenceStatus{}; | 289 | PFN_vkGetFenceStatus vkGetFenceStatus{}; |
| @@ -871,7 +871,8 @@ public: | |||
| 871 | 871 | ||
| 872 | DeviceMemory AllocateMemory(const VkMemoryAllocateInfo& ai) const; | 872 | DeviceMemory AllocateMemory(const VkMemoryAllocateInfo& ai) const; |
| 873 | 873 | ||
| 874 | VkMemoryRequirements GetBufferMemoryRequirements(VkBuffer buffer) const noexcept; | 874 | VkMemoryRequirements GetBufferMemoryRequirements(VkBuffer buffer, |
| 875 | void* pnext = nullptr) const noexcept; | ||
| 875 | 876 | ||
| 876 | VkMemoryRequirements GetImageMemoryRequirements(VkImage image) const noexcept; | 877 | VkMemoryRequirements GetImageMemoryRequirements(VkImage image) const noexcept; |
| 877 | 878 | ||