Use a StagingBelt in iced_wgpu for regular buffer uploads
This commit is contained in:
parent
1df1cf82f4
commit
2bb53ad6e7
10 changed files with 113 additions and 41 deletions
|
|
@ -61,12 +61,22 @@ impl<T: bytemuck::Pod> Buffer<T> {
|
|||
/// Returns the size of the written bytes.
|
||||
pub fn write(
|
||||
&mut self,
|
||||
queue: &wgpu::Queue,
|
||||
device: &wgpu::Device,
|
||||
encoder: &mut wgpu::CommandEncoder,
|
||||
belt: &mut wgpu::util::StagingBelt,
|
||||
offset: usize,
|
||||
contents: &[T],
|
||||
) -> usize {
|
||||
let bytes: &[u8] = bytemuck::cast_slice(contents);
|
||||
queue.write_buffer(&self.raw, offset as u64, bytes);
|
||||
|
||||
belt.write_buffer(
|
||||
encoder,
|
||||
&self.raw,
|
||||
offset as u64,
|
||||
(bytes.len() as u64).try_into().expect("Non-empty write"),
|
||||
device,
|
||||
)
|
||||
.copy_from_slice(bytes);
|
||||
|
||||
self.offsets.push(offset as u64);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue