cleanup crimes
parent
5a18a63928
commit
b281836261
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// (╯°□°)╯︵ ┻━┻
|
// (╯°□°)╯︵ ┻━┻
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue