cleanup crimes

ecs
q3k 2020-03-15 16:58:03 +01:00
parent 5a18a63928
commit b281836261
2 changed files with 8 additions and 16 deletions

View File

@ -65,7 +65,7 @@ impl<WT: 'static + Send + Sync> Instance<WT> {
]; ];
let mut vulkanOpt: Option<Arc<vi::Instance>> = None; let mut vulkan_opt: Option<Arc<vi::Instance>> = None;
for pref in layer_preferences { for pref in layer_preferences {
match vi::Instance::new(Some(&ai), &exts, pref.iter().cloned()) { match vi::Instance::new(Some(&ai), &exts, pref.iter().cloned()) {
Ok(res) => { Ok(res) => {
@ -73,7 +73,7 @@ impl<WT: 'static + Send + Sync> Instance<WT> {
if pref.len() == 0 { if pref.len() == 0 {
log::warn!("Did not load validation layers."); log::warn!("Did not load validation layers.");
} }
vulkanOpt = Some(res); vulkan_opt = Some(res);
} }
Err(err) => { Err(err) => {
log::warn!("Could not create vulkan instance with layers {}: {}", pref.join(", "), err); log::warn!("Could not create vulkan instance with layers {}: {}", pref.join(", "), err);
@ -81,7 +81,7 @@ impl<WT: 'static + Send + Sync> Instance<WT> {
} }
}; };
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 debug_callback = Self::init_debug_callback(&vulkan);
let workers = (0..4).map(|n| { let workers = (0..4).map(|n| {
@ -173,12 +173,7 @@ impl<WT: 'static + Send + Sync> Instance<WT> {
w.render(device.clone(), queue.clone(), rp.clone(), pipeline.clone(), view.clone(), proj.clone(), c.to_vec()) w.render(device.clone(), queue.clone(), rp.clone(), pipeline.clone(), view.clone(), proj.clone(), c.to_vec())
}); });
let start = time::Instant::now(); futures.map(|r| { r.recv().unwrap() }).collect()
let res = futures.map(|r| { r.recv().unwrap() }).collect();
let took = time::Instant::now().duration_since(start);
//log::info!("took {:?}", took);
res
} }
// (╯°□°)╯︵ ┻━┻ // (╯°□°)╯︵ ┻━┻

View File

@ -3,7 +3,6 @@ use log;
use std::sync::Arc; use std::sync::Arc;
use std::sync::mpsc; use std::sync::mpsc;
use std::thread; use std::thread;
use std::time;
use cgmath as cgm; use cgmath as cgm;
use vulkano::command_buffer as vc; use vulkano::command_buffer as vc;
@ -33,7 +32,7 @@ struct CommandRender {
} }
pub struct Worker { pub struct Worker {
handle: thread::JoinHandle<()>, handle: Option<thread::JoinHandle<()>>,
control: mpsc::Sender<Command>, control: mpsc::Sender<Command>,
} }
@ -71,7 +70,8 @@ impl Worker {
}); });
Worker { Worker {
handle, control handle: Some(handle),
control
} }
} }
@ -81,7 +81,6 @@ impl Worker {
let mut builder = vc::AutoCommandBufferBuilder::secondary_graphics_one_time_submit( let mut builder = vc::AutoCommandBufferBuilder::secondary_graphics_one_time_submit(
r.device, qf, vf::Subpass::from(r.render_pass, 0).unwrap()).unwrap(); r.device, qf, vf::Subpass::from(r.render_pass, 0).unwrap()).unwrap();
let start = time::Instant::now();
for d in r.data { for d in r.data {
let ubo = data::UniformBufferObject { let ubo = data::UniformBufferObject {
model: r.matrix_p.clone() * r.matrix_v.clone() * d.get_transform(), model: r.matrix_p.clone() * r.matrix_v.clone() * d.get_transform(),
@ -93,8 +92,6 @@ impl Worker {
(), (),
ubo).unwrap(); ubo).unwrap();
} }
let took = time::Instant::now().duration_since(start);
//log::info!("worker loop took {:?}", took);
let buffer = builder.build().unwrap(); let buffer = builder.build().unwrap();
r.result.send(Box::new(buffer)).unwrap(); r.result.send(Box::new(buffer)).unwrap();
@ -129,6 +126,6 @@ impl Worker {
impl Drop for Worker { impl Drop for Worker {
fn drop(&mut self) { fn drop(&mut self) {
self.control.send(Command::Exit).unwrap(); self.control.send(Command::Exit).unwrap();
//self.handle.join().unwrap(); self.handle.take().unwrap().join().unwrap();
} }
} }