This commit is contained in:
2021-10-24 15:12:59 +02:00
parent 8d5457c810
commit 23e19bf9d0
9 changed files with 49 additions and 38 deletions

View File

@@ -218,8 +218,8 @@ impl VulkanRenderer {
let type_str = match (msg.severity.error, msg.severity.warning, msg.severity.information, msg.severity.verbose) {
(true, _, _, _) => "!!",
(_, true, _, _) => "!",
(_, _, _, true) => "i",
_ => " "
(_, _, true, _) => "i",
_ => "v"
};
let layer_str = msg.layer_prefix;
@@ -228,7 +228,7 @@ impl VulkanRenderer {
}).ok();
}
// TODO: Just get the first physical device we find, it's fiiiine...
// TODO: Create device selector
let physical = PhysicalDevice::enumerate(&instance).next().unwrap();
println!("Using device: {} (type: {:?})", physical.name(), physical.ty());
@@ -236,14 +236,11 @@ impl VulkanRenderer {
let surface = WindowBuilder::new().build_vk_surface(&events_loop, instance.clone()).unwrap();
let window = surface.window();
// TODO: Tutorial says we need more queues
// In a real-life application, we would probably use at least a graphics queue and a transfers
// queue to handle data transfers in parallel. In this example we only use one queue.
// Queue
let queue_family = physical.queue_families().find(|&q| {
q.supports_graphics() && surface.is_supported(q).unwrap_or(false)
}).unwrap();
// Queue
let device_ext = DeviceExtensions { khr_swapchain: true, ..DeviceExtensions::none() };
let (device, mut queues) = Device::new(physical, physical.supported_features(), &device_ext,
[(queue_family, 0.5)].iter().cloned()).unwrap();