diff --git a/crates/engine_vulkan/src/queues.rs b/crates/engine_vulkan/src/queues.rs index 6b94f76..17e6c08 100644 --- a/crates/engine_vulkan/src/queues.rs +++ b/crates/engine_vulkan/src/queues.rs @@ -50,12 +50,12 @@ pub struct VulkanQueueFamilyIndices { pub transfer_queue_family_index: VulkanQueueFamilyStatus, } -impl From for Vec { +impl From for Vec<(VulkanQueueFamilyStatus, f32)> { fn from(indices: VulkanQueueFamilyIndices) -> Self { vec![ - indices.graphics_queue_family_index, - indices.compute_queue_family_index, - indices.transfer_queue_family_index, + (indices.graphics_queue_family_index, 1.0), + (indices.compute_queue_family_index, 0.5), + (indices.transfer_queue_family_index, 0.5), ] } } @@ -64,17 +64,18 @@ impl From for Vec { fn from(indices: VulkanQueueFamilyIndices) -> Self { let mut queue_create_infos = HashMap::::new(); - let statuses: Vec = indices.into(); + let statuses: Vec<(VulkanQueueFamilyStatus, f32)> = indices.into(); - for status in statuses.iter() { + for (status, priority) in statuses.iter() { match status { VulkanQueueFamilyStatus::Supported(index) => { let entry = queue_create_infos.entry(*index).or_insert(QueueCreateInfo { queue_family_index: *index, + queues: Vec::new(), ..Default::default() }); - entry.queues.push(1.0); + entry.queues.push(*priority); } _ => {} }