فهرست منبع

renderer_vulkan/wrapper: Add buffer and image handles

ReinUsesLisp 6 سال پیش
والد
کامیت
affee77b70
2فایلهای تغییر یافته به همراه24 افزوده شده و 0 حذف شده
  1. 8 0
      src/video_core/renderer_vulkan/wrapper.cpp
  2. 16 0
      src/video_core/renderer_vulkan/wrapper.h

+ 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