diff --git a/Cargo.toml b/Cargo.toml index 39d27259f8..ba5e0afea3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,6 +36,7 @@ rev = "b51053dc2dc3bbe9b2ba050fde42eeb6405fe092" [dependencies] arrayvec = "0.5" +smallvec = "1" raw-window-handle = "0.3" [dev-dependencies] diff --git a/examples/capture/main.rs b/examples/capture/main.rs index b8819ee41d..a4cecb74e6 100644 --- a/examples/capture/main.rs +++ b/examples/capture/main.rs @@ -15,7 +15,7 @@ async fn run() { ) .unwrap(); - let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { + let (device, queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { anisotropic_filtering: false, }, diff --git a/examples/framework.rs b/examples/framework.rs index f6825dd80d..a0554fe873 100644 --- a/examples/framework.rs +++ b/examples/framework.rs @@ -102,7 +102,7 @@ pub fn run(title: &str) { ) .unwrap(); - let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { + let (device, queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { anisotropic_filtering: false, }, diff --git a/examples/hello-compute/main.rs b/examples/hello-compute/main.rs index d2fc060152..164ff303b1 100644 --- a/examples/hello-compute/main.rs +++ b/examples/hello-compute/main.rs @@ -24,7 +24,7 @@ async fn run() { ) .unwrap(); - let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { + let (device, queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { anisotropic_filtering: false, }, diff --git a/examples/hello-triangle/main.rs b/examples/hello-triangle/main.rs index 9a9f70e275..cbf64841ad 100644 --- a/examples/hello-triangle/main.rs +++ b/examples/hello-triangle/main.rs @@ -44,7 +44,7 @@ fn main() { ) .unwrap(); - let (device, mut queue) = adapter.request_device(&wgpu::DeviceDescriptor { + let (device, queue) = adapter.request_device(&wgpu::DeviceDescriptor { extensions: wgpu::Extensions { anisotropic_filtering: false, }, diff --git a/src/lib.rs b/src/lib.rs index 93bcc75d78..2dbeffdbf5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,7 @@ use future::GpuFutureCompletion; pub use future::GpuFuture; use arrayvec::ArrayVec; +use smallvec::SmallVec; use std::ffi::CString; use std::ops::Range; @@ -261,7 +262,6 @@ pub struct ComputePass<'a> { #[derive(Debug)] pub struct Queue { id: wgc::id::QueueId, - temp_command_buffers: Vec, } /// A resource that can be bound to a pipeline. @@ -569,7 +569,6 @@ impl Adapter { }; let queue = Queue { id: wgn::wgpu_device_get_queue(device.id), - temp_command_buffers: Vec::new(), }; (device, queue) } @@ -1382,14 +1381,14 @@ impl<'a> Drop for ComputePass<'a> { impl Queue { /// Submits a series of finished command buffers for execution. - pub fn submit(&mut self, command_buffers: &[CommandBuffer]) { - self.temp_command_buffers.clear(); - self.temp_command_buffers - .extend(command_buffers.iter().map(|cb| cb.id)); + pub fn submit(&self, command_buffers: &[CommandBuffer]) { + let temp_command_buffers = command_buffers.iter() + .map(|cb| cb.id) + .collect::>(); wgn::wgpu_queue_submit( self.id, - self.temp_command_buffers.as_ptr(), + temp_command_buffers.as_ptr(), command_buffers.len(), ); }