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

renderer_vulkan/wrapper: Add vkEnumerateInstanceExtensionProperties wrapper

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

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

@@ -733,4 +733,18 @@ VkPhysicalDeviceMemoryProperties PhysicalDevice::GetMemoryProperties() const noe
     return properties;
     return properties;
 }
 }
 
 
+std::optional<std::vector<VkExtensionProperties>> EnumerateInstanceExtensionProperties(
+    const InstanceDispatch& dld) {
+    u32 num;
+    if (dld.vkEnumerateInstanceExtensionProperties(nullptr, &num, nullptr) != VK_SUCCESS) {
+        return std::nullopt;
+    }
+    std::vector<VkExtensionProperties> properties(num);
+    if (dld.vkEnumerateInstanceExtensionProperties(nullptr, &num, properties.data()) !=
+        VK_SUCCESS) {
+        return std::nullopt;
+    }
+    return properties;
+}
+
 } // namespace Vulkan::vk
 } // namespace Vulkan::vk

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

@@ -981,4 +981,7 @@ private:
     const DeviceDispatch* dld;
     const DeviceDispatch* dld;
 };
 };
 
 
+std::optional<std::vector<VkExtensionProperties>> EnumerateInstanceExtensionProperties(
+    const InstanceDispatch& dld);
+
 } // namespace Vulkan::vk
 } // namespace Vulkan::vk