diff --git a/examples/capture/main.rs b/examples/capture/main.rs index d0757c0c64..e7da3cb64d 100644 --- a/examples/capture/main.rs +++ b/examples/capture/main.rs @@ -12,7 +12,8 @@ fn main() { power_preference: wgpu::PowerPreference::Default, }, wgpu::BackendBit::PRIMARY, - ).unwrap(); + ) + .unwrap(); let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { diff --git a/examples/cube/main.rs b/examples/cube/main.rs index 25838b7019..3e23a5bebb 100644 --- a/examples/cube/main.rs +++ b/examples/cube/main.rs @@ -107,7 +107,10 @@ impl Example { } impl framework::Example for Example { - fn init(sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> (Self, Option) { + fn init( + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> (Self, Option) { use std::mem; let mut init_encoder = @@ -130,9 +133,7 @@ impl framework::Example for Example { wgpu::BindGroupLayoutBinding { binding: 0, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { - dynamic: false, - }, + ty: wgpu::BindingType::UniformBuffer { dynamic: false }, }, wgpu::BindGroupLayoutBinding { binding: 1, @@ -209,10 +210,7 @@ impl framework::Example for Example { let mx_total = Self::generate_matrix(sc_desc.width as f32 / sc_desc.height as f32); let mx_ref: &[f32; 16] = mx_total.as_ref(); let uniform_buf = device - .create_buffer_mapped( - 16, - wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, - ) + .create_buffer_mapped(16, wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST) .fill_from_slice(mx_ref); // Create bind group @@ -310,7 +308,11 @@ impl framework::Example for Example { //empty } - fn resize(&mut self, sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> Option { + fn resize( + &mut self, + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> Option { let mx_total = Self::generate_matrix(sc_desc.width as f32 / sc_desc.height as f32); let mx_ref: &[f32; 16] = mx_total.as_ref(); @@ -324,7 +326,11 @@ impl framework::Example for Example { Some(encoder.finish()) } - fn render(&mut self, frame: &wgpu::SwapChainOutput, device: &wgpu::Device) -> wgpu::CommandBuffer { + fn render( + &mut self, + frame: &wgpu::SwapChainOutput, + device: &wgpu::Device, + ) -> wgpu::CommandBuffer { let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); { diff --git a/examples/describe/main.rs b/examples/describe/main.rs index 287bd787a3..bde3b5d171 100644 --- a/examples/describe/main.rs +++ b/examples/describe/main.rs @@ -7,7 +7,8 @@ fn main() { power_preference: wgpu::PowerPreference::Default, }, wgpu::BackendBit::PRIMARY, - ).unwrap(); + ) + .unwrap(); println!("{:?}", adapter.get_info()) } diff --git a/examples/framework.rs b/examples/framework.rs index b7933006a8..f6825dd80d 100644 --- a/examples/framework.rs +++ b/examples/framework.rs @@ -99,7 +99,8 @@ pub fn run(title: &str) { power_preference: wgpu::PowerPreference::Default, }, wgpu::BackendBit::PRIMARY, - ).unwrap(); + ) + .unwrap(); let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { @@ -163,7 +164,8 @@ pub fn run(title: &str) { } }, event::Event::EventsCleared => { - let frame = swap_chain.get_next_texture() + let frame = swap_chain + .get_next_texture() .expect("Timeout when acquiring next swap chain texture"); let command_buf = example.render(&frame, &device); queue.submit(&[command_buf]); diff --git a/examples/hello-compute/main.rs b/examples/hello-compute/main.rs index d3bdf388a1..988c349bc8 100644 --- a/examples/hello-compute/main.rs +++ b/examples/hello-compute/main.rs @@ -19,7 +19,8 @@ fn main() { power_preference: wgpu::PowerPreference::Default, }, wgpu::BackendBit::PRIMARY, - ).unwrap(); + ) + .unwrap(); let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { @@ -29,14 +30,13 @@ fn main() { }); let cs = include_bytes!("shader.comp.spv"); - let cs_module = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&cs[..])).unwrap()); + let cs_module = + device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&cs[..])).unwrap()); let staging_buffer = device .create_buffer_mapped( numbers.len(), - wgpu::BufferUsage::MAP_READ - | wgpu::BufferUsage::COPY_DST - | wgpu::BufferUsage::COPY_SRC, + wgpu::BufferUsage::MAP_READ | wgpu::BufferUsage::COPY_DST | wgpu::BufferUsage::COPY_SRC, ) .fill_from_slice(&numbers); @@ -48,13 +48,14 @@ fn main() { }); let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ - wgpu::BindGroupLayoutBinding { - binding: 0, - visibility: wgpu::ShaderStage::COMPUTE, - ty: wgpu::BindingType::StorageBuffer { dynamic: false, readonly: false }, + bindings: &[wgpu::BindGroupLayoutBinding { + binding: 0, + visibility: wgpu::ShaderStage::COMPUTE, + ty: wgpu::BindingType::StorageBuffer { + dynamic: false, + readonly: false, }, - ], + }], }); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { @@ -92,9 +93,13 @@ fn main() { queue.submit(&[encoder.finish()]); - staging_buffer.map_read_async(0, numbers.len(), |result: wgpu::BufferMapAsyncResult<&[u32]>| { - if let Ok(mapping) = result { - println!("Times: {:?}", mapping.data); - } - }); + staging_buffer.map_read_async( + 0, + numbers.len(), + |result: wgpu::BufferMapAsyncResult<&[u32]>| { + if let Ok(mapping) = result { + println!("Times: {:?}", mapping.data); + } + }, + ); } diff --git a/examples/hello-triangle/main.rs b/examples/hello-triangle/main.rs index 18bc2a027a..9a9f70e275 100644 --- a/examples/hello-triangle/main.rs +++ b/examples/hello-triangle/main.rs @@ -1,7 +1,7 @@ fn main() { use winit::{ - event_loop::{ControlFlow, EventLoop}, event, + event_loop::{ControlFlow, EventLoop}, }; env_logger::init(); @@ -10,9 +10,7 @@ fn main() { #[cfg(not(feature = "gl"))] let (_window, size, surface) = { let window = winit::window::Window::new(&event_loop).unwrap(); - let size = window - .inner_size() - .to_physical(window.hidpi_factor()); + let size = window.inner_size().to_physical(window.hidpi_factor()); let surface = wgpu::Surface::create(&window); (window, size, surface) @@ -43,7 +41,8 @@ fn main() { power_preference: wgpu::PowerPreference::Default, }, wgpu::BackendBit::PRIMARY, - ).unwrap(); + ) + .unwrap(); let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { @@ -53,14 +52,15 @@ fn main() { }); let vs = include_bytes!("shader.vert.spv"); - let vs_module = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&vs[..])).unwrap()); + let vs_module = + device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&vs[..])).unwrap()); let fs = include_bytes!("shader.frag.spv"); - let fs_module = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&fs[..])).unwrap()); + let fs_module = + device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&fs[..])).unwrap()); - let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[], - }); + let bind_group_layout = + device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { bindings: &[] }); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &bind_group_layout, bindings: &[], @@ -135,7 +135,8 @@ fn main() { _ => {} }, event::Event::EventsCleared => { - let frame = swap_chain.get_next_texture() + let frame = swap_chain + .get_next_texture() .expect("Timeout when acquiring next swap chain texture"); let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); diff --git a/examples/mipmap/main.rs b/examples/mipmap/main.rs index 1129c571b0..a769d83a50 100644 --- a/examples/mipmap/main.rs +++ b/examples/mipmap/main.rs @@ -96,14 +96,10 @@ impl Example { bind_group_layouts: &[&bind_group_layout], }); - let vs_bytes = framework::load_glsl( - include_str!("blit.vert"), - framework::ShaderStage::Vertex, - ); - let fs_bytes = framework::load_glsl( - include_str!("blit.frag"), - framework::ShaderStage::Fragment, - ); + let vs_bytes = + framework::load_glsl(include_str!("blit.vert"), framework::ShaderStage::Vertex); + let fs_bytes = + framework::load_glsl(include_str!("blit.frag"), framework::ShaderStage::Fragment); let vs_module = device.create_shader_module(&vs_bytes); let fs_module = device.create_shader_module(&fs_bytes); @@ -152,15 +148,17 @@ impl Example { }); let views = (0 .. mip_count) - .map(|mip| texture.create_view(&wgpu::TextureViewDescriptor { - format: TEXTURE_FORMAT, - dimension: wgpu::TextureViewDimension::D2, - aspect: wgpu::TextureAspect::All, - base_mip_level: mip, - level_count: 1, - base_array_layer: 0, - array_layer_count: 1, - })) + .map(|mip| { + texture.create_view(&wgpu::TextureViewDescriptor { + format: TEXTURE_FORMAT, + dimension: wgpu::TextureViewDimension::D2, + aspect: wgpu::TextureAspect::All, + base_mip_level: mip, + level_count: 1, + base_array_layer: 0, + array_layer_count: 1, + }) + }) .collect::>(); for target_mip in 1 .. mip_count as usize { @@ -196,7 +194,10 @@ impl Example { } impl framework::Example for Example { - fn init(sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> (Self, Option) { + fn init( + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> (Self, Option) { use std::mem; let mut init_encoder = @@ -215,9 +216,7 @@ impl framework::Example for Example { wgpu::BindGroupLayoutBinding { binding: 0, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { - dynamic: false, - }, + ty: wgpu::BindingType::UniformBuffer { dynamic: false }, }, wgpu::BindGroupLayoutBinding { binding: 1, @@ -254,7 +253,9 @@ impl framework::Example for Example { sample_count: 1, dimension: wgpu::TextureDimension::D2, format: TEXTURE_FORMAT, - usage: wgpu::TextureUsage::SAMPLED | wgpu::TextureUsage::OUTPUT_ATTACHMENT | wgpu::TextureUsage::COPY_DST, + usage: wgpu::TextureUsage::SAMPLED + | wgpu::TextureUsage::OUTPUT_ATTACHMENT + | wgpu::TextureUsage::COPY_DST, }); let texture_view = texture.create_default_view(); let temp_buf = device @@ -295,10 +296,7 @@ impl framework::Example for Example { let mx_total = Self::generate_matrix(sc_desc.width as f32 / sc_desc.height as f32); let mx_ref: &[f32; 16] = mx_total.as_ref(); let uniform_buf = device - .create_buffer_mapped( - 16, - wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, - ) + .create_buffer_mapped(16, wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST) .fill_from_slice(mx_ref); // Create bind group @@ -324,14 +322,10 @@ impl framework::Example for Example { }); // Create the render pipeline - let vs_bytes = framework::load_glsl( - include_str!("draw.vert"), - framework::ShaderStage::Vertex, - ); - let fs_bytes = framework::load_glsl( - include_str!("draw.frag"), - framework::ShaderStage::Fragment, - ); + let vs_bytes = + framework::load_glsl(include_str!("draw.vert"), framework::ShaderStage::Vertex); + let fs_bytes = + framework::load_glsl(include_str!("draw.frag"), framework::ShaderStage::Fragment); let vs_module = device.create_shader_module(&vs_bytes); let fs_module = device.create_shader_module(&fs_bytes); @@ -364,13 +358,11 @@ impl framework::Example for Example { vertex_buffers: &[wgpu::VertexBufferDescriptor { stride: vertex_size as wgpu::BufferAddress, step_mode: wgpu::InputStepMode::Vertex, - attributes: &[ - wgpu::VertexAttributeDescriptor { - format: wgpu::VertexFormat::Float4, - offset: 0, - shader_location: 0, - }, - ], + attributes: &[wgpu::VertexAttributeDescriptor { + format: wgpu::VertexFormat::Float4, + offset: 0, + shader_location: 0, + }], }], sample_count: 1, sample_mask: !0, @@ -393,7 +385,11 @@ impl framework::Example for Example { //empty } - fn resize(&mut self, sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> Option { + fn resize( + &mut self, + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> Option { let mx_total = Self::generate_matrix(sc_desc.width as f32 / sc_desc.height as f32); let mx_ref: &[f32; 16] = mx_total.as_ref(); @@ -407,7 +403,11 @@ impl framework::Example for Example { Some(encoder.finish()) } - fn render(&mut self, frame: &wgpu::SwapChainOutput, device: &wgpu::Device) -> wgpu::CommandBuffer { + fn render( + &mut self, + frame: &wgpu::SwapChainOutput, + device: &wgpu::Device, + ) -> wgpu::CommandBuffer { let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); { diff --git a/examples/msaa-line/main.rs b/examples/msaa-line/main.rs index ea932a28c9..fdd7cbd643 100644 --- a/examples/msaa-line/main.rs +++ b/examples/msaa-line/main.rs @@ -13,7 +13,7 @@ mod framework; #[repr(C)] #[derive(Clone, Copy, zerocopy::AsBytes, zerocopy::FromBytes)] struct Vertex { - _pos: [f32; 2], + _pos: [f32; 2], _color: [f32; 4], } @@ -31,7 +31,14 @@ struct Example { } impl Example { - fn create_pipeline(device: &wgpu::Device, sc_desc: &wgpu::SwapChainDescriptor, vs_module: &wgpu::ShaderModule, fs_module: &wgpu::ShaderModule, pipeline_layout: &wgpu::PipelineLayout, sample_count: u32) -> wgpu::RenderPipeline { + fn create_pipeline( + device: &wgpu::Device, + sc_desc: &wgpu::SwapChainDescriptor, + vs_module: &wgpu::ShaderModule, + fs_module: &wgpu::ShaderModule, + pipeline_layout: &wgpu::PipelineLayout, + sample_count: u32, + ) -> wgpu::RenderPipeline { println!("sample_count: {}", sample_count); device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { layout: &pipeline_layout, @@ -81,7 +88,11 @@ impl Example { }) } - fn create_multisampled_framebuffer(device: &wgpu::Device, sc_desc: &wgpu::SwapChainDescriptor, sample_count: u32) -> wgpu::TextureView { + fn create_multisampled_framebuffer( + device: &wgpu::Device, + sc_desc: &wgpu::SwapChainDescriptor, + sample_count: u32, + ) -> wgpu::TextureView { let multisampled_texture_extent = wgpu::Extent3d { width: sc_desc.width, height: sc_desc.height, @@ -97,17 +108,26 @@ impl Example { usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, }; - device.create_texture(multisampled_frame_descriptor).create_default_view() + device + .create_texture(multisampled_frame_descriptor) + .create_default_view() } } impl framework::Example for Example { - fn init(sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> (Self, Option) { + fn init( + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> (Self, Option) { println!("Press left/right arrow keys to change sample_count."); let sample_count = 4; - let vs_bytes = framework::load_glsl(include_str!("shader.vert"), framework::ShaderStage::Vertex); - let fs_bytes = framework::load_glsl(include_str!("shader.frag"), framework::ShaderStage::Fragment); + let vs_bytes = + framework::load_glsl(include_str!("shader.vert"), framework::ShaderStage::Vertex); + let fs_bytes = framework::load_glsl( + include_str!("shader.frag"), + framework::ShaderStage::Fragment, + ); let vs_module = device.create_shader_module(&vs_bytes); let fs_module = device.create_shader_module(&fs_bytes); @@ -115,13 +135,21 @@ impl framework::Example for Example { bind_group_layouts: &[], }); - let pipeline = Example::create_pipeline(device, &sc_desc, &vs_module, &fs_module, &pipeline_layout, sample_count); - let multisampled_framebuffer = Example::create_multisampled_framebuffer(device, sc_desc, sample_count); + let pipeline = Example::create_pipeline( + device, + &sc_desc, + &vs_module, + &fs_module, + &pipeline_layout, + sample_count, + ); + let multisampled_framebuffer = + Example::create_multisampled_framebuffer(device, sc_desc, sample_count); - let mut vertex_data = vec!(); + let mut vertex_data = vec![]; let max = 50; - for i in 0..max { + for i in 0 .. max { let percent = i as f32 / max as f32; let (sin, cos) = (percent * 2.0 * std::f32::consts::PI).sin_cos(); vertex_data.push(Vertex { @@ -171,28 +199,46 @@ impl framework::Example for Example { self.rebuild_pipeline = true; } } - _ => { } + _ => {} } } } - _ => { } + _ => {} } } - fn resize(&mut self, sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> Option { + fn resize( + &mut self, + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> Option { self.sc_desc = sc_desc.clone(); - self.multisampled_framebuffer = Example::create_multisampled_framebuffer(device, sc_desc, self.sample_count); + self.multisampled_framebuffer = + Example::create_multisampled_framebuffer(device, sc_desc, self.sample_count); None } - fn render(&mut self, frame: &wgpu::SwapChainOutput, device: &wgpu::Device) -> wgpu::CommandBuffer { + fn render( + &mut self, + frame: &wgpu::SwapChainOutput, + device: &wgpu::Device, + ) -> wgpu::CommandBuffer { if self.rebuild_pipeline { - self.pipeline = Example::create_pipeline(device, &self.sc_desc, &self.vs_module, &self.fs_module, &self.pipeline_layout, self.sample_count); - self.multisampled_framebuffer = Example::create_multisampled_framebuffer(device, &self.sc_desc, self.sample_count); + self.pipeline = Example::create_pipeline( + device, + &self.sc_desc, + &self.vs_module, + &self.fs_module, + &self.pipeline_layout, + self.sample_count, + ); + self.multisampled_framebuffer = + Example::create_multisampled_framebuffer(device, &self.sc_desc, self.sample_count); self.rebuild_pipeline = false; } - let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); + let mut encoder = + device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); { let rpass_color_attachment = if self.sample_count == 1 { wgpu::RenderPassColorAttachmentDescriptor { @@ -218,7 +264,7 @@ impl framework::Example for Example { }); rpass.set_pipeline(&self.pipeline); rpass.set_vertex_buffers(0, &[(&self.vertex_buffer, 0)]); - rpass.draw(0..self.vertex_count, 0..1); + rpass.draw(0 .. self.vertex_count, 0 .. 1); } encoder.finish() diff --git a/examples/shadow/main.rs b/examples/shadow/main.rs index 8572cc788d..90abf29e1f 100644 --- a/examples/shadow/main.rs +++ b/examples/shadow/main.rs @@ -116,11 +116,17 @@ impl Light { far: self.depth.end, }; let mx_correction = framework::OPENGL_TO_WGPU_MATRIX; - let mx_view_proj = mx_correction * cgmath::Matrix4::from(projection.to_perspective()) * mx_view; + let mx_view_proj = + mx_correction * cgmath::Matrix4::from(projection.to_perspective()) * mx_view; LightRaw { proj: *mx_view_proj.as_ref(), pos: [self.pos.x, self.pos.y, self.pos.z, 1.0], - color: [self.color.r as f32, self.color.g as f32, self.color.b as f32, 1.0], + color: [ + self.color.r as f32, + self.color.g as f32, + self.color.b as f32, + 1.0, + ], } } } @@ -183,7 +189,10 @@ impl Example { } impl framework::Example for Example { - fn init(sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> (Self, Option) { + fn init( + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> (Self, Option) { // Create the vertex and index buffers let vertex_size = mem::size_of::(); let (cube_vertex_data, cube_index_data) = create_cube(); @@ -214,15 +223,14 @@ impl framework::Example for Example { usage: wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, }); - let local_bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ - wgpu::BindGroupLayoutBinding { + let local_bind_group_layout = + device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { + bindings: &[wgpu::BindGroupLayoutBinding { binding: 0, visibility: wgpu::ShaderStage::VERTEX | wgpu::ShaderStage::FRAGMENT, ty: wgpu::BindingType::UniformBuffer { dynamic: false }, - }, - ], - }); + }], + }); let mut entities = vec![{ use cgmath::SquareMatrix; @@ -406,15 +414,14 @@ impl framework::Example for Example { let shadow_pass = { // Create pipeline layout - let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ - wgpu::BindGroupLayoutBinding { + let bind_group_layout = + device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { + bindings: &[wgpu::BindGroupLayoutBinding { binding: 0, // global visibility: wgpu::ShaderStage::VERTEX, ty: wgpu::BindingType::UniformBuffer { dynamic: false }, - }, - ], - }); + }], + }); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { bind_group_layouts: &[&bind_group_layout, &local_bind_group_layout], }); @@ -495,16 +502,12 @@ impl framework::Example for Example { wgpu::BindGroupLayoutBinding { binding: 0, // global visibility: wgpu::ShaderStage::VERTEX | wgpu::ShaderStage::FRAGMENT, - ty: wgpu::BindingType::UniformBuffer { - dynamic: false, - }, + ty: wgpu::BindingType::UniformBuffer { dynamic: false }, }, wgpu::BindGroupLayoutBinding { binding: 1, // lights visibility: wgpu::ShaderStage::VERTEX | wgpu::ShaderStage::FRAGMENT, - ty: wgpu::BindingType::UniformBuffer { - dynamic: false, - }, + ty: wgpu::BindingType::UniformBuffer { dynamic: false }, }, wgpu::BindGroupLayoutBinding { binding: 2, @@ -532,10 +535,7 @@ impl framework::Example for Example { }; let uniform_size = mem::size_of::() as wgpu::BufferAddress; let uniform_buf = device - .create_buffer_mapped( - 1, - wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, - ) + .create_buffer_mapped(1, wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST) .fill_from_slice(&[forward_uniforms]); // Create bind group @@ -654,7 +654,11 @@ impl framework::Example for Example { //empty } - fn resize(&mut self, sc_desc: &wgpu::SwapChainDescriptor, device: &wgpu::Device) -> Option { + fn resize( + &mut self, + sc_desc: &wgpu::SwapChainDescriptor, + device: &wgpu::Device, + ) -> Option { let command_buf = { let mx_total = Self::generate_matrix(sc_desc.width as f32 / sc_desc.height as f32); let mx_ref: &[f32; 16] = mx_total.as_ref(); @@ -686,7 +690,11 @@ impl framework::Example for Example { Some(command_buf) } - fn render(&mut self, frame: &wgpu::SwapChainOutput, device: &wgpu::Device) -> wgpu::CommandBuffer { + fn render( + &mut self, + frame: &wgpu::SwapChainOutput, + device: &wgpu::Device, + ) -> wgpu::CommandBuffer { let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { todo: 0 }); diff --git a/examples/skybox/main.rs b/examples/skybox/main.rs index 6ff570e2d2..2fcb2f6378 100644 --- a/examples/skybox/main.rs +++ b/examples/skybox/main.rs @@ -76,10 +76,7 @@ impl framework::Example for Skybox { uniforms.len(), wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, ) - .fill_from_slice(&[ - uniforms[0].into(), - uniforms[1].into(), - ]); + .fill_from_slice(&[uniforms[0].into(), uniforms[1].into()]); let uniform_buf_size = std::mem::size_of::(); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { @@ -175,7 +172,9 @@ impl framework::Example for Skybox { for (i, image) in faces.iter().enumerate() { log::debug!( "Copying skybox image {} of size {},{} to gpu", - i, image_width, image_height, + i, + image_width, + image_height, ); let image_buf = device .create_buffer_mapped(image.len(), wgpu::BufferUsage::COPY_SRC) @@ -218,7 +217,7 @@ impl framework::Example for Skybox { binding: 0, resource: wgpu::BindingResource::Buffer { buffer: &uniform_buf, - range: 0..uniform_buf_size as wgpu::BufferAddress, + range: 0 .. uniform_buf_size as wgpu::BufferAddress, }, }, wgpu::Binding { @@ -279,14 +278,8 @@ impl framework::Example for Skybox { self.uniforms[1] = self.uniforms[1] * rotation; let uniform_buf_size = std::mem::size_of::(); let temp_buf = device - .create_buffer_mapped::<[[f32; 4]; 4]>( - self.uniforms.len(), - wgpu::BufferUsage::COPY_SRC, - ) - .fill_from_slice(&[ - self.uniforms[0].into(), - self.uniforms[1].into(), - ]); + .create_buffer_mapped::<[[f32; 4]; 4]>(self.uniforms.len(), wgpu::BufferUsage::COPY_SRC) + .fill_from_slice(&[self.uniforms[0].into(), self.uniforms[1].into()]); init_encoder.copy_buffer_to_buffer( &temp_buf, @@ -315,7 +308,7 @@ impl framework::Example for Skybox { rpass.set_pipeline(&self.pipeline); rpass.set_bind_group(0, &self.bind_group, &[]); - rpass.draw(0..3 as u32, 0..1); + rpass.draw(0 .. 3 as u32, 0 .. 1); } init_encoder.finish() } diff --git a/src/lib.rs b/src/lib.rs index 633aa3286c..ec30809a66 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,12 +11,10 @@ use std::slice; use std::thread; pub use wgc::{ - binding_model::{ - ShaderStage, - }, + binding_model::ShaderStage, command::{ - CommandEncoderDescriptor, CommandBufferDescriptor, + CommandEncoderDescriptor, LoadOp, RenderPassDepthStencilAttachmentDescriptor, StoreOp, @@ -50,6 +48,7 @@ pub use wgc::{ VertexAttributeDescriptor, VertexFormat, }, + read_spirv, resource::{ AddressMode, BufferDescriptor, @@ -66,24 +65,18 @@ pub use wgc::{ TextureViewDescriptor, TextureViewDimension, }, - swap_chain::{ - PresentMode, - SwapChainDescriptor, - }, + swap_chain::{PresentMode, SwapChainDescriptor}, BufferAddress, Color, Extent3d, Origin3d, - read_spirv, }; - //TODO: avoid heap allocating vectors during resource creation. -#[derive(Default)] -#[derive(Debug)] +#[derive(Default, Debug)] struct Temp { //bind_group_descriptors: Vec, - //vertex_buffers: Vec, +//vertex_buffers: Vec, } /// A handle to a physical graphics and/or compute device. @@ -551,15 +544,21 @@ impl Adapter { /// /// If no adapters are found that suffice all the "hard" options, `None` is returned. pub fn request(options: &RequestAdapterOptions, backends: BackendBit) -> Option { - unsafe extern "C" fn adapter_callback(id: wgc::id::AdapterId, user_data: *mut std::ffi::c_void) { + unsafe extern "C" fn adapter_callback( + id: wgc::id::AdapterId, + user_data: *mut std::ffi::c_void, + ) { *(user_data as *mut wgc::id::AdapterId) = id; } let mut id = wgc::id::AdapterId::ERROR; - wgn::wgpu_request_adapter_async(Some(options), backends, adapter_callback, &mut id as *mut _ as *mut std::ffi::c_void); - Some(Adapter { - id, - }) + wgn::wgpu_request_adapter_async( + Some(options), + backends, + adapter_callback, + &mut id as *mut _ as *mut std::ffi::c_void, + ); + Some(Adapter { id }) } /// Requests a connection to a physical device, creating a logical device. @@ -655,22 +654,27 @@ impl Device { pub fn create_bind_group_layout(&self, desc: &BindGroupLayoutDescriptor) -> BindGroupLayout { use wgc::binding_model as bm; - let temp_layouts = desc.bindings + let temp_layouts = desc + .bindings .iter() .map(|bind| bm::BindGroupLayoutBinding { binding: bind.binding, visibility: bind.visibility, ty: match bind.ty { BindingType::UniformBuffer { .. } => bm::BindingType::UniformBuffer, - BindingType::StorageBuffer { readonly: false, .. } => bm::BindingType::StorageBuffer, - BindingType::StorageBuffer { readonly: true, .. } => bm::BindingType::ReadonlyStorageBuffer, + BindingType::StorageBuffer { + readonly: false, .. + } => bm::BindingType::StorageBuffer, + BindingType::StorageBuffer { readonly: true, .. } => { + bm::BindingType::ReadonlyStorageBuffer + } BindingType::Sampler => bm::BindingType::Sampler, BindingType::SampledTexture { .. } => bm::BindingType::SampledTexture, BindingType::StorageTexture { .. } => bm::BindingType::StorageTexture, }, dynamic: match bind.ty { - BindingType::UniformBuffer { dynamic } | - BindingType::StorageBuffer { dynamic, .. } => dynamic, + BindingType::UniformBuffer { dynamic } + | BindingType::StorageBuffer { dynamic, .. } => dynamic, _ => false, }, multisampled: match bind.ty { @@ -678,8 +682,8 @@ impl Device { _ => false, }, texture_dimension: match bind.ty { - BindingType::SampledTexture { dimension, .. } | - BindingType::StorageTexture { dimension } => dimension, + BindingType::SampledTexture { dimension, .. } + | BindingType::StorageTexture { dimension } => dimension, _ => TextureViewDimension::D2, }, }) @@ -756,7 +760,8 @@ impl Device { fragment_stage: fragment_stage .as_ref() .map_or(ptr::null(), |fs| fs as *const _), - rasterization_state: desc.rasterization_state + rasterization_state: desc + .rasterization_state .as_ref() .map_or(ptr::null(), |p| p as *const _), primitive_topology: desc.primitive_topology, @@ -1294,7 +1299,11 @@ impl<'a> RenderPass<'a> { /// /// The active index buffer can be set with [`RenderPass::set_index_buffer`], while the active /// vertex buffers can be set with [`RenderPass::set_vertex_buffers`]. - pub fn draw_indexed_indirect(&mut self, indirect_buffer: &Buffer, indirect_offset: BufferAddress) { + pub fn draw_indexed_indirect( + &mut self, + indirect_buffer: &Buffer, + indirect_offset: BufferAddress, + ) { wgn::wgpu_render_pass_draw_indexed_indirect(self.id, indirect_buffer.id, indirect_offset); } } diff --git a/tests/multithreaded_compute.rs b/tests/multithreaded_compute.rs index 4324b30075..8e185236ab 100644 --- a/tests/multithreaded_compute.rs +++ b/tests/multithreaded_compute.rs @@ -28,7 +28,8 @@ fn multithreaded_compute() { }); let cs = include_bytes!("../examples/hello-compute/shader.comp.spv"); - let cs_module = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&cs[..])).unwrap()); + let cs_module = device + .create_shader_module(&wgpu::read_spirv(std::io::Cursor::new(&cs[..])).unwrap()); let staging_buffer = device .create_buffer_mapped( @@ -48,16 +49,14 @@ fn multithreaded_compute() { let bind_group_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ - wgpu::BindGroupLayoutBinding { - binding: 0, - visibility: wgpu::ShaderStage::COMPUTE, - ty: wgpu::BindingType::StorageBuffer { - dynamic: false, - readonly: false, - }, + bindings: &[wgpu::BindGroupLayoutBinding { + binding: 0, + visibility: wgpu::ShaderStage::COMPUTE, + ty: wgpu::BindingType::StorageBuffer { + dynamic: false, + readonly: false, }, - ], + }], }); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {