Просмотр исходного кода

renderer_vulkan/wrapper: Add fence handle

ReinUsesLisp 6 лет назад
Родитель
Сommit
7fe52ef77f
1 измененных файлов с 17 добавлено и 0 удалено
  1. 17 0
      src/video_core/renderer_vulkan/wrapper.h

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

@@ -615,6 +615,23 @@ public:
     }
 };
 
+class Fence : public Handle<VkFence, VkDevice, DeviceDispatch> {
+    using Handle<VkFence, VkDevice, DeviceDispatch>::Handle;
+
+public:
+    VkResult Wait(u64 timeout = std::numeric_limits<u64>::max()) const noexcept {
+        return dld->vkWaitForFences(owner, 1, &handle, true, timeout);
+    }
+
+    VkResult GetStatus() const noexcept {
+        return dld->vkGetFenceStatus(owner, handle);
+    }
+
+    void Reset() const {
+        Check(dld->vkResetFences(owner, 1, &handle));
+    }
+};
+
 class DescriptorPool : public Handle<VkDescriptorPool, VkDevice, DeviceDispatch> {
     using Handle<VkDescriptorPool, VkDevice, DeviceDispatch>::Handle;