diff options
author | 2023-02-07 23:55:16 +0100 | |
---|---|---|
committer | 2023-02-24 13:37:31 +0100 | |
commit | b8c1809ea101cece6943432fd3597f785c39af09 (patch) | |
tree | 662b5e85e67ff33be892811bc29bfe52ae041302 /wgpu/src/buffer/static.rs | |
parent | 23ed352e83dcb8a13acdac1cd4c7e2a9df492ebd (diff) | |
download | iced-b8c1809ea101cece6943432fd3597f785c39af09.tar.gz iced-b8c1809ea101cece6943432fd3597f785c39af09.tar.bz2 iced-b8c1809ea101cece6943432fd3597f785c39af09.zip |
Refactor `triangle::Pipeline` into `prepare` and `render` architecture
And get rid of the staging belt! :tada:
Diffstat (limited to 'wgpu/src/buffer/static.rs')
-rw-r--r-- | wgpu/src/buffer/static.rs | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/wgpu/src/buffer/static.rs b/wgpu/src/buffer/static.rs index ef87422f..7ae7edd2 100644 --- a/wgpu/src/buffer/static.rs +++ b/wgpu/src/buffer/static.rs @@ -3,7 +3,7 @@ use std::marker::PhantomData; use std::mem; //128 triangles/indices -const DEFAULT_STATIC_BUFFER_COUNT: wgpu::BufferAddress = 128; +const DEFAULT_STATIC_BUFFER_COUNT: wgpu::BufferAddress = 1_000; /// A generic buffer struct useful for items which have no alignment requirements /// (e.g. Vertex, Index buffers) & no dynamic offsets. @@ -71,28 +71,15 @@ impl<T: Pod + Zeroable> Buffer<T> { /// Returns the size of the written bytes. pub fn write( &mut self, - device: &wgpu::Device, - staging_belt: &mut wgpu::util::StagingBelt, - encoder: &mut wgpu::CommandEncoder, + queue: &wgpu::Queue, offset: u64, content: &[T], ) -> u64 { let bytes = bytemuck::cast_slice(content); let bytes_size = bytes.len() as u64; - if let Some(buffer_size) = wgpu::BufferSize::new(bytes_size) { - let mut buffer = staging_belt.write_buffer( - encoder, - &self.gpu, - offset, - buffer_size, - device, - ); - - buffer.copy_from_slice(bytes); - - self.offsets.push(offset); - } + queue.write_buffer(&self.gpu, offset, bytes); + self.offsets.push(offset); bytes_size } |