running again

This commit is contained in:
2019-07-06 19:40:57 -07:00
parent 21c7801fc8
commit 5551581a3e
4 changed files with 33 additions and 101 deletions

View File

@@ -58,19 +58,28 @@ impl<'a> VkProcessor<'a> {
}
pub fn compile_kernel(&mut self) {
let project_root = std::env::current_dir().expect("failed to get root directory");
let mut compute_path = project_root.clone();
compute_path.push(PathBuf::from("resources/shaders/simple-homogenize.compute"));
pub fn compile_kernel(&mut self, filename: String) {
let shader = sr::load_compute(compute_path).expect("Failed to compile");
let vulkano_entry = sr::parse_compute(&shader).expect("failed to parse");
let project_root =
std::env::current_dir()
.expect("failed to get root directory");
let mut compute_path = project_root.clone();
compute_path.push(PathBuf::from("resources/shaders/"));
compute_path.push(PathBuf::from(filename));
let shader =
sr::load_compute(compute_path)
.expect("Failed to compile");
let vulkano_entry =
sr::parse_compute(&shader)
.expect("failed to parse");
let x = unsafe {
vulkano::pipeline::shader::ShaderModule::from_words(self.device.clone(), &shader.compute)
}.unwrap();
// Compile the shader and add it to a pipeline
let pipeline = Arc::new({
unsafe {
ComputePipeline::new(self.device.clone(), &x.compute_entry_point(
@@ -83,10 +92,17 @@ impl<'a> VkProcessor<'a> {
self.pipeline = Some(pipeline);
}
pub fn load_buffers(&mut self)
pub fn load_buffers(&mut self, image_filename: String)
{
let project_root =
std::env::current_dir()
.expect("failed to get root directory");
let img = image::open("resources/images/funky-bird.jpg").unwrap();
let mut compute_path = project_root.clone();
compute_path.push(PathBuf::from("resources/images/"));
compute_path.push(PathBuf::from(image_filename));
let img = image::open(compute_path).expect("Couldn't find image");
self.xy = img.dimensions();
@@ -145,12 +161,14 @@ impl<'a> VkProcessor<'a> {
// Create the data descriptor set for our previously created shader pipeline
let mut set =
PersistentDescriptorSet::start(self.pipeline.clone().unwrap().clone(), 0)
.add_buffer(write_buffer).unwrap()
.add_buffer(write_buffer.clone()).unwrap()
.add_buffer(read_buffer).unwrap()
.add_buffer(settings_buffer).unwrap();
self.set = Some(Arc::new(set.build().unwrap()));
self.img_buffers.push(write_buffer);
}
pub fn run_kernel(&mut self) {