From b28183626179175a148f5badca7a0a96e2af1d25 Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Sun, 15 Mar 2020 16:58:03 +0100 Subject: [PATCH] cleanup crimes --- engine/src/render/vulkan/mod.rs | 13 ++++--------- engine/src/render/vulkan/worker.rs | 11 ++++------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/engine/src/render/vulkan/mod.rs b/engine/src/render/vulkan/mod.rs index 2c98b21..63fcf3c 100644 --- a/engine/src/render/vulkan/mod.rs +++ b/engine/src/render/vulkan/mod.rs @@ -65,7 +65,7 @@ impl Instance { ]; - let mut vulkanOpt: Option> = None; + let mut vulkan_opt: Option> = None; for pref in layer_preferences { match vi::Instance::new(Some(&ai), &exts, pref.iter().cloned()) { Ok(res) => { @@ -73,7 +73,7 @@ impl Instance { if pref.len() == 0 { log::warn!("Did not load validation layers."); } - vulkanOpt = Some(res); + vulkan_opt = Some(res); } Err(err) => { log::warn!("Could not create vulkan instance with layers {}: {}", pref.join(", "), err); @@ -81,7 +81,7 @@ impl Instance { } }; - let vulkan = vulkanOpt.expect("could not create a vulkan instance"); + let vulkan = vulkan_opt.expect("could not create a vulkan instance"); let debug_callback = Self::init_debug_callback(&vulkan); let workers = (0..4).map(|n| { @@ -173,12 +173,7 @@ impl Instance { w.render(device.clone(), queue.clone(), rp.clone(), pipeline.clone(), view.clone(), proj.clone(), c.to_vec()) }); - let start = time::Instant::now(); - let res = futures.map(|r| { r.recv().unwrap() }).collect(); - let took = time::Instant::now().duration_since(start); - //log::info!("took {:?}", took); - - res + futures.map(|r| { r.recv().unwrap() }).collect() } // (╯°□°)╯︵ ┻━┻ diff --git a/engine/src/render/vulkan/worker.rs b/engine/src/render/vulkan/worker.rs index 2d1c505..94840fa 100644 --- a/engine/src/render/vulkan/worker.rs +++ b/engine/src/render/vulkan/worker.rs @@ -3,7 +3,6 @@ use log; use std::sync::Arc; use std::sync::mpsc; use std::thread; -use std::time; use cgmath as cgm; use vulkano::command_buffer as vc; @@ -33,7 +32,7 @@ struct CommandRender { } pub struct Worker { - handle: thread::JoinHandle<()>, + handle: Option>, control: mpsc::Sender, } @@ -71,7 +70,8 @@ impl Worker { }); Worker { - handle, control + handle: Some(handle), + control } } @@ -81,7 +81,6 @@ impl Worker { let mut builder = vc::AutoCommandBufferBuilder::secondary_graphics_one_time_submit( r.device, qf, vf::Subpass::from(r.render_pass, 0).unwrap()).unwrap(); - let start = time::Instant::now(); for d in r.data { let ubo = data::UniformBufferObject { model: r.matrix_p.clone() * r.matrix_v.clone() * d.get_transform(), @@ -93,8 +92,6 @@ impl Worker { (), ubo).unwrap(); } - let took = time::Instant::now().duration_since(start); - //log::info!("worker loop took {:?}", took); let buffer = builder.build().unwrap(); r.result.send(Box::new(buffer)).unwrap(); @@ -129,6 +126,6 @@ impl Worker { impl Drop for Worker { fn drop(&mut self) { self.control.send(Command::Exit).unwrap(); - //self.handle.join().unwrap(); + self.handle.take().unwrap().join().unwrap(); } }