private void PickPhysicalDevice()
 {
     // Currently simply picks the first physical device. We might want a smarter choice here.
     PhysicalDevice                 = Instance.EnumeratePhysicalDevices()[0];
     PhysicalDeviceFeatures         = PhysicalDevice.GetFeatures();
     PhysicalDeviceMemoryProperties = PhysicalDevice.GetMemoryProperties();
     AvailableDeviceExtensions      = PhysicalDevice.EnumerateExtensionProperties();
 }
        internal HostDevice(
            PhysicalDevice vulkanPhysicaldevice,
            SurfaceType surfaceType,
            Logger logger = null)
        {
            if (vulkanPhysicaldevice == null)
            {
                throw new ArgumentNullException(nameof(vulkanPhysicaldevice));
            }
            this.physicalDevice         = vulkanPhysicaldevice;
            this.surfaceType            = surfaceType;
            this.logger                 = logger;
            this.properties             = vulkanPhysicaldevice.GetProperties();
            this.deviceMemoryProperties = vulkanPhysicaldevice.GetMemoryProperties();
            this.supportedFeatures      = vulkanPhysicaldevice.GetFeatures();
            this.availableExtensions    = vulkanPhysicaldevice.EnumerateExtensionProperties();
            this.queueFamilies          = vulkanPhysicaldevice.GetQueueFamilyProperties();

            logger?.Log(nameof(HostDevice), $"Found device: {Name}");
            logger?.LogList(nameof(HostDevice), $"{Name} available extensions:", availableExtensions);
        }
Exemple #3
0
 public void EnumerateExtensionProperties()
 {
     ExtensionProperties[] properties = PhysicalDevice.EnumerateExtensionProperties();
     Assert.True(properties.Length > 0);
 }