Przeglądaj źródła

renderer_vulkan/wrapper: Add buffer and image handles

ReinUsesLisp 6 lat temu
rodzic
commit
affee77b70

+ 8 - 0
src/video_core/renderer_vulkan/wrapper.cpp

@@ -420,4 +420,12 @@ std::vector<VkCheckpointDataNV> Queue::GetCheckpointDataNV(const DeviceDispatch&
     return checkpoints;
 }
 
+void Buffer::BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const {
+    Check(dld->vkBindBufferMemory(owner, handle, memory, offset));
+}
+
+void Image::BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const {
+    Check(dld->vkBindImageMemory(owner, handle, memory, offset));
+}
+
 } // namespace Vulkan::vk

+ 16 - 0
src/video_core/renderer_vulkan/wrapper.h

@@ -584,4 +584,20 @@ private:
     const DeviceDispatch* dld = nullptr;
 };
 
+class Buffer : public Handle<VkBuffer, VkDevice, DeviceDispatch> {
+    using Handle<VkBuffer, VkDevice, DeviceDispatch>::Handle;
+
+public:
+    /// Attaches a memory allocation.
+    void BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const;
+};
+
+class Image : public Handle<VkImage, VkDevice, DeviceDispatch> {
+    using Handle<VkImage, VkDevice, DeviceDispatch>::Handle;
+
+public:
+    /// Attaches a memory allocation.
+    void BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const;
+};
+
 } // namespace Vulkan::vk