running again
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user