aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs')
-rw-r--r--src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs b/src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs
index 547f3654..3bee1e9d 100644
--- a/src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs
+++ b/src/Ryujinx.Graphics.Vulkan/VulkanPhysicalDevice.cs
@@ -58,6 +58,33 @@ namespace Ryujinx.Graphics.Vulkan
public bool IsDeviceExtensionPresent(string extension) => DeviceExtensions.Contains(extension);
+ public unsafe bool TryGetPhysicalDeviceDriverPropertiesKHR(Vk api, out PhysicalDeviceDriverPropertiesKHR res)
+ {
+ if (!IsDeviceExtensionPresent("VK_KHR_driver_properties"))
+ {
+ res = default;
+
+ return false;
+ }
+
+ PhysicalDeviceDriverPropertiesKHR physicalDeviceDriverProperties = new()
+ {
+ SType = StructureType.PhysicalDeviceDriverPropertiesKhr
+ };
+
+ PhysicalDeviceProperties2 physicalDeviceProperties2 = new()
+ {
+ SType = StructureType.PhysicalDeviceProperties2,
+ PNext = &physicalDeviceDriverProperties
+ };
+
+ api.GetPhysicalDeviceProperties2(PhysicalDevice, &physicalDeviceProperties2);
+
+ res = physicalDeviceDriverProperties;
+
+ return true;
+ }
+
public DeviceInfo ToDeviceInfo()
{
return new DeviceInfo(