/// <summary> /// Initializes the physical device. /// </summary> public override void Initialize(ISurface surface) { base.Initialize(surface); // - Get the vulkan library var library = Library as VulkanLibrary; // - Makes a new drawing surface DrawingSurface = surface.CreateVKSurface(library.Handle); // - Gets all devices var devices = library.Handle.EnumeratePhysicalDevices(); // - Filter all non graphic devices var suitableDevices = FilterSuitableDevices(devices, DrawingSurface); // - Order devices by priority (performance) var orderedDevices = OrderDeviceBySuitability(suitableDevices); // - Takes the first suitable device Handle = orderedDevices.First(); }