summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-09 06:54:51 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-02-24 13:37:32 +0100
commit2097a56b58d8fe1784a625f69c1cdd38fcfb9a52 (patch)
tree763c3d6b7ab323565ef7e59b54e5cf5f00a73d4c
parent0715d7d0c781a4c7ead4dfdbf0f4656022df67e1 (diff)
downloadiced-2097a56b58d8fe1784a625f69c1cdd38fcfb9a52.tar.gz
iced-2097a56b58d8fe1784a625f69c1cdd38fcfb9a52.tar.bz2
iced-2097a56b58d8fe1784a625f69c1cdd38fcfb9a52.zip
Provide some margin to static buffers when growing
-rw-r--r--wgpu/src/buffer/static.rs13
-rw-r--r--wgpu/src/triangle.rs2
2 files changed, 9 insertions, 6 deletions
diff --git a/wgpu/src/buffer/static.rs b/wgpu/src/buffer/static.rs
index 7ae7edd2..d8ae116e 100644
--- a/wgpu/src/buffer/static.rs
+++ b/wgpu/src/buffer/static.rs
@@ -2,8 +2,7 @@ use bytemuck::{Pod, Zeroable};
use std::marker::PhantomData;
use std::mem;
-//128 triangles/indices
-const DEFAULT_STATIC_BUFFER_COUNT: wgpu::BufferAddress = 1_000;
+const DEFAULT_COUNT: wgpu::BufferAddress = 128;
/// A generic buffer struct useful for items which have no alignment requirements
/// (e.g. Vertex, Index buffers) & no dynamic offsets.
@@ -25,7 +24,7 @@ impl<T: Pod + Zeroable> Buffer<T> {
label: &'static str,
usages: wgpu::BufferUsages,
) -> Self {
- let size = (mem::size_of::<T>() as u64) * DEFAULT_STATIC_BUFFER_COUNT;
+ let size = (mem::size_of::<T>() as u64) * DEFAULT_COUNT;
Self {
offsets: Vec::new(),
@@ -57,9 +56,13 @@ impl<T: Pod + Zeroable> Buffer<T> {
let size = (mem::size_of::<T>() * new_count) as u64;
if self.size < size {
+ self.size =
+ (mem::size_of::<T>() * (new_count + new_count / 2)) as u64;
+
+ self.gpu =
+ Self::gpu_buffer(device, self.label, self.size, self.usages);
+
self.offsets.clear();
- self.size = size;
- self.gpu = Self::gpu_buffer(device, self.label, size, self.usages);
true
} else {
false
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs
index 1b537bf4..4b4fa16d 100644
--- a/wgpu/src/triangle.rs
+++ b/wgpu/src/triangle.rs
@@ -43,7 +43,7 @@ impl Layer {
Self {
index_buffer: Buffer::new(
device,
- "iced_wgpu::triangle vertex buffer",
+ "iced_wgpu::triangle index buffer",
wgpu::BufferUsages::INDEX | wgpu::BufferUsages::COPY_DST,
),
index_strides: Vec::new(),