Run cargo fmt
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 0s

This commit is contained in:
Florian RICHER 2024-11-16 22:45:22 +01:00
parent bc94b68c0c
commit e9ce480f96
Signed by: florian.richer
GPG key ID: C73D37CBED7BFC77
10 changed files with 175 additions and 136 deletions

View file

@ -1,6 +1,6 @@
use crate::vulkan::vk_surface::VkSurface;
use ash::vk;
use crate::vulkan::LOG_TARGET;
use ash::vk;
pub struct VkPhysicalDevice {
// Vulkan properties
@ -34,24 +34,18 @@ impl VkPhysicalDevice {
queue_flags: Option<vk::QueueFlags>,
surface: Option<&VkSurface>,
) -> Option<(u32, &vk::QueueFamilyProperties)> {
self.queue_family_properties
.iter()
.enumerate()
.find_map(|(index, queue_family_property)| {
self.queue_family_properties.iter().enumerate().find_map(
|(index, queue_family_property)| {
let surface_check_passed = match surface {
Some(surface) => {
surface.physical_device_queue_supported(self, index as u32)
.unwrap_or(false)
}
Some(surface) => surface
.physical_device_queue_supported(self, index as u32)
.unwrap_or(false),
None => true,
};
let queue_flags_check_passed = match queue_flags {
Some(queue_flags) => {
queue_family_property.queue_flags
.contains(queue_flags)
}
None => true
Some(queue_flags) => queue_family_property.queue_flags.contains(queue_flags),
None => true,
};
if surface_check_passed && queue_flags_check_passed {
@ -59,7 +53,8 @@ impl VkPhysicalDevice {
} else {
None
}
})
},
)
}
pub fn pick_physical_device_and_queue_by<'a>(
@ -67,12 +62,13 @@ impl VkPhysicalDevice {
queue_flags: Option<vk::QueueFlags>,
surface: Option<&VkSurface>,
) -> Option<(&'a VkPhysicalDevice, u32, &'a vk::QueueFamilyProperties)> {
physical_devices
.iter()
.find_map(|physical_device| {
physical_device.find_queue_family_by(queue_flags, surface)
.and_then(|(queue_index, queue_family_properties)| Some((physical_device, queue_index, queue_family_properties)))
})
physical_devices.iter().find_map(|physical_device| {
physical_device
.find_queue_family_by(queue_flags, surface)
.and_then(|(queue_index, queue_family_properties)| {
Some((physical_device, queue_index, queue_family_properties))
})
})
}
pub fn priority(&self) -> usize {
@ -81,7 +77,7 @@ impl VkPhysicalDevice {
vk::PhysicalDeviceType::VIRTUAL_GPU => 2,
vk::PhysicalDeviceType::INTEGRATED_GPU => 3,
vk::PhysicalDeviceType::DISCRETE_GPU => 4,
_ => 0
_ => 0,
}
}
}