aboutsummaryrefslogtreecommitdiffstatsci
path: root/samples/select_physical_dev/Program.cs
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-07 14:31:55 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-07 14:31:55 +0100
commit3fb884d726910719a351d3e617c757459fb7c772 (patch)
tree1625cf47f6eab63f18fb39093e3a1f0df373c272 /samples/select_physical_dev/Program.cs
parent2af048902ea6952eaac368b8880788214f2e95af (diff)
samples
Diffstat (limited to 'samples/select_physical_dev/Program.cs')
-rw-r--r--samples/select_physical_dev/Program.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/samples/select_physical_dev/Program.cs b/samples/select_physical_dev/Program.cs
new file mode 100644
index 0000000..3258489
--- /dev/null
+++ b/samples/select_physical_dev/Program.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+using Vulkan;
+using static Vulkan.Vk;
+using static samples.Utils;
+using Version = Vulkan.Version;
+
+namespace tests
+{
+ class Program
+ {
+
+ static void Main(string[] args)
+ {
+ VkInstance inst;
+
+ using (VkApplicationInfo ai = new VkApplicationInfo ()) {
+ using (VkInstanceCreateInfo ci = new VkInstanceCreateInfo {pApplicationInfo = ai}){
+ CheckResult (vkCreateInstance (ci, IntPtr.Zero, out inst));
+ }
+ }
+
+ Vk.LoadInstanceFunctionPointers (inst);
+
+ CheckResult (vkEnumeratePhysicalDevices (inst, out uint phyCount, IntPtr.Zero));
+
+ VkPhysicalDevice[] phys = new VkPhysicalDevice[phyCount];
+
+ CheckResult (vkEnumeratePhysicalDevices (inst, out phyCount, phys.Pin()));
+
+ for (int i = 0; i < phys.Length; i++)
+ {
+ vkGetPhysicalDeviceProperties (phys[i], out VkPhysicalDeviceProperties props);
+ Console.WriteLine ($"{props.deviceName}");
+ Console.WriteLine ($"\tdeviceType: {props.deviceType,20}");
+ Console.WriteLine ($"\tapiVersion: {(Version)props.apiVersion,20}");
+ Console.WriteLine ($"\tdriverVersion:{props.driverVersion,20}");
+ Console.WriteLine ($"\tvendorID: {props.vendorID,20}");
+ }
+
+ vkDestroyInstance (inst, IntPtr.Zero);
+ }
+ }
+}