Ejemplo n.º 1
0
        private unsafe static void PrintDevice(PhysicalDevice physicalDevice)
        {
            VulkanUtils.GetVkPhysicalDeviceProperties2(_vk, physicalDevice, out var physicalProps, out var driverProps);
            VulkanUtils.CreateVkDevice(_vk, physicalDevice, out var _);

            Console.WriteLine();

            var str1 = Marshal.PtrToStringUTF8((IntPtr)driverProps.DriverName);

            Console.WriteLine($"Driver Name: {str1}");

            var driverId = driverProps.DriverID.ToString().Replace("DriverID", string.Empty);

            Console.WriteLine($"DriverId: {driverId}");

            var deviceName = Marshal.PtrToStringUTF8((IntPtr)physicalProps.Properties.DeviceName);

            Console.WriteLine($"Device Name: {deviceName}");

            var str = Marshal.PtrToStringUTF8((IntPtr)driverProps.DriverInfo);

            Console.WriteLine($"Driver Info: {str}");

            var ver = driverProps.ConformanceVersion;
            var conformanceVersion = $"{ver.Major}.{ver.Minor}.{ver.Patch}.{ver.Subminor}";

            Console.WriteLine($"Conformance Version: {conformanceVersion}");

            VulkanUtils.EnumerateInstanceExtensions(_vk, out var extensions);
            Console.WriteLine($"Supported extensions: {extensions.Length}");
        }
Ejemplo n.º 2
0
        internal unsafe static void Main(string[] args)
        {
            VulkanUtils.CreateVkInfo("vkfetch", out var _, out var instanceInfo);
            VulkanUtils.CreateVkInstance(_vk, instanceInfo, out var instance);

            var devices = _vk.GetPhysicalDevices(instance);

            if (devices.Count == 0)
            {
                Console.WriteLine("Failed to find Vulkan 1.2 capable device");
                return;
            }

            for (var i = 0; i < devices.Count; i++)
            {
                var dev = devices.ElementAt(i);
                PrintDevice(dev);
            }
        }