From 24152f5d2485e6f9b75cfe17290a4f789bc560e4 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Mon, 30 Jan 2023 17:49:46 +0530 Subject: [PATCH 1/8] Added buffer usage field to buffers --- .../src/render_resource/storage_buffer.rs | 17 +++++++++++++++-- .../src/render_resource/uniform_buffer.rs | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 666b86667b9086..f8328efc8b2e0a 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -34,6 +34,7 @@ pub struct StorageBuffer { capacity: usize, label: Option, label_changed: bool, + buffer_usage: BufferUsages, } impl From for StorageBuffer { @@ -45,6 +46,7 @@ impl From for StorageBuffer { capacity: 0, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -58,6 +60,7 @@ impl Default for StorageBuffer { capacity: 0, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -101,6 +104,10 @@ impl StorageBuffer { self.label.as_deref() } + pub fn set_usage(&mut self, usage: BufferUsages) { + self.buffer_usage.set(usage, true); + } + /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) /// and the provided [`RenderQueue`](crate::renderer::RenderQueue). /// @@ -114,7 +121,7 @@ impl StorageBuffer { if self.capacity < size || self.label_changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; @@ -153,6 +160,7 @@ pub struct DynamicStorageBuffer { capacity: usize, label: Option, label_changed: bool, + buffer_usage: BufferUsages, } impl Default for DynamicStorageBuffer { @@ -164,6 +172,7 @@ impl Default for DynamicStorageBuffer { capacity: 0, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -214,6 +223,10 @@ impl DynamicStorageBuffer { self.label.as_deref() } + pub fn set_usage(&mut self, usage: BufferUsages) { + self.buffer_usage.set(usage, true); + } + #[inline] pub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue) { let size = self.scratch.as_ref().len(); @@ -221,7 +234,7 @@ impl DynamicStorageBuffer { if self.capacity < size || self.label_changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index aa66ee08da2780..585a3f3d8f9956 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -33,6 +33,7 @@ pub struct UniformBuffer { buffer: Option, label: Option, label_changed: bool, + buffer_usage: BufferUsages, } impl From for UniformBuffer { @@ -43,6 +44,7 @@ impl From for UniformBuffer { buffer: None, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -55,6 +57,7 @@ impl Default for UniformBuffer { buffer: None, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -99,6 +102,10 @@ impl UniformBuffer { self.label.as_deref() } + pub fn set_usage(&mut self, usage: BufferUsages) { + self.buffer_usage.set(usage, true); + } + /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) /// and the provided [`RenderQueue`](crate::renderer::RenderQueue), if a GPU-side backing buffer already exists. /// @@ -110,7 +117,7 @@ impl UniformBuffer { if self.label_changed || self.buffer.is_none() { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.label_changed = false; @@ -146,6 +153,7 @@ pub struct DynamicUniformBuffer { capacity: usize, label: Option, label_changed: bool, + buffer_usage: BufferUsages, } impl Default for DynamicUniformBuffer { @@ -157,6 +165,7 @@ impl Default for DynamicUniformBuffer { capacity: 0, label: None, label_changed: false, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -208,6 +217,10 @@ impl DynamicUniformBuffer { self.label.as_deref() } + pub fn set_usage(&mut self, usage: BufferUsages) { + self.buffer_usage.set(usage, true); + } + /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) /// and the provided [`RenderQueue`](crate::renderer::RenderQueue). /// @@ -220,7 +233,7 @@ impl DynamicUniformBuffer { if self.capacity < size || self.label_changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; From ce3ae6453309e216cf3f9ba13bfa58c45d9e8580 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Mon, 30 Jan 2023 18:57:47 +0530 Subject: [PATCH 2/8] Change label_changed to changed and update changed when set_usage is called --- .../src/render_resource/storage_buffer.rs | 28 ++++++++++--------- .../src/render_resource/uniform_buffer.rs | 28 ++++++++++--------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index f8328efc8b2e0a..4e2b236b0238e8 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -33,7 +33,7 @@ pub struct StorageBuffer { buffer: Option, capacity: usize, label: Option, - label_changed: bool, + changed: bool, buffer_usage: BufferUsages, } @@ -45,7 +45,7 @@ impl From for StorageBuffer { buffer: None, capacity: 0, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } @@ -59,7 +59,7 @@ impl Default for StorageBuffer { buffer: None, capacity: 0, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } @@ -94,7 +94,7 @@ impl StorageBuffer { let label = label.map(str::to_string); if label != self.label { - self.label_changed = true; + self.changed = true; } self.label = label; @@ -105,7 +105,8 @@ impl StorageBuffer { } pub fn set_usage(&mut self, usage: BufferUsages) { - self.buffer_usage.set(usage, true); + self.buffer_usage |= usage; + self.changed = true; } /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) @@ -118,14 +119,14 @@ impl StorageBuffer { let size = self.scratch.as_ref().len(); - if self.capacity < size || self.label_changed { + if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; - self.label_changed = false; + self.changed = false; } else if let Some(buffer) = &self.buffer { queue.write_buffer(buffer, 0, self.scratch.as_ref()); } @@ -159,7 +160,7 @@ pub struct DynamicStorageBuffer { buffer: Option, capacity: usize, label: Option, - label_changed: bool, + changed: bool, buffer_usage: BufferUsages, } @@ -171,7 +172,7 @@ impl Default for DynamicStorageBuffer { buffer: None, capacity: 0, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } @@ -213,7 +214,7 @@ impl DynamicStorageBuffer { let label = label.map(str::to_string); if label != self.label { - self.label_changed = true; + self.changed = true; } self.label = label; @@ -224,21 +225,22 @@ impl DynamicStorageBuffer { } pub fn set_usage(&mut self, usage: BufferUsages) { - self.buffer_usage.set(usage, true); + self.buffer_usage |= usage; + self.changed = true; } #[inline] pub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue) { let size = self.scratch.as_ref().len(); - if self.capacity < size || self.label_changed { + if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; - self.label_changed = false; + self.changed = false; } else if let Some(buffer) = &self.buffer { queue.write_buffer(buffer, 0, self.scratch.as_ref()); } diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index 585a3f3d8f9956..baa3558a62e187 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -32,7 +32,7 @@ pub struct UniformBuffer { scratch: UniformBufferWrapper>, buffer: Option, label: Option, - label_changed: bool, + changed: bool, buffer_usage: BufferUsages, } @@ -43,7 +43,7 @@ impl From for UniformBuffer { scratch: UniformBufferWrapper::new(Vec::new()), buffer: None, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } @@ -56,7 +56,7 @@ impl Default for UniformBuffer { scratch: UniformBufferWrapper::new(Vec::new()), buffer: None, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } @@ -92,7 +92,7 @@ impl UniformBuffer { let label = label.map(str::to_string); if label != self.label { - self.label_changed = true; + self.changed = true; } self.label = label; @@ -103,7 +103,8 @@ impl UniformBuffer { } pub fn set_usage(&mut self, usage: BufferUsages) { - self.buffer_usage.set(usage, true); + self.buffer_usage |= usage; + self.changed = true; } /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) @@ -114,13 +115,13 @@ impl UniformBuffer { pub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue) { self.scratch.write(&self.value).unwrap(); - if self.label_changed || self.buffer.is_none() { + if self.changed || self.buffer.is_none() { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), usage: self.buffer_usage, contents: self.scratch.as_ref(), })); - self.label_changed = false; + self.changed = false; } else if let Some(buffer) = &self.buffer { queue.write_buffer(buffer, 0, self.scratch.as_ref()); } @@ -152,7 +153,7 @@ pub struct DynamicUniformBuffer { buffer: Option, capacity: usize, label: Option, - label_changed: bool, + changed: bool, buffer_usage: BufferUsages, } @@ -164,7 +165,7 @@ impl Default for DynamicUniformBuffer { buffer: None, capacity: 0, label: None, - label_changed: false, + changed: false, buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } @@ -207,7 +208,7 @@ impl DynamicUniformBuffer { let label = label.map(str::to_string); if label != self.label { - self.label_changed = true; + self.changed = true; } self.label = label; @@ -218,7 +219,8 @@ impl DynamicUniformBuffer { } pub fn set_usage(&mut self, usage: BufferUsages) { - self.buffer_usage.set(usage, true); + self.buffer_usage |= usage; + self.changed = true; } /// Queues writing of data from system RAM to VRAM using the [`RenderDevice`](crate::renderer::RenderDevice) @@ -230,14 +232,14 @@ impl DynamicUniformBuffer { pub fn write_buffer(&mut self, device: &RenderDevice, queue: &RenderQueue) { let size = self.scratch.as_ref().len(); - if self.capacity < size || self.label_changed { + if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; - self.label_changed = false; + self.changed = false; } else if let Some(buffer) = &self.buffer { queue.write_buffer(buffer, 0, self.scratch.as_ref()); } From 7755ef471624237affe1a833458045be2797b074 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Sat, 4 Feb 2023 17:13:28 +0530 Subject: [PATCH 3/8] Added doc comments and added UNIFORM and STORAGE flags in write_buffer --- .../src/render_resource/storage_buffer.rs | 16 +++++++++++----- .../src/render_resource/uniform_buffer.rs | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 4e2b236b0238e8..0088a547fc5522 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -46,7 +46,7 @@ impl From for StorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -60,7 +60,7 @@ impl Default for StorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -104,6 +104,9 @@ impl StorageBuffer { self.label.as_deref() } + /// Set the buffer usage of the buffer. + /// + /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -122,7 +125,7 @@ impl StorageBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: self.buffer_usage, + usage: BufferUsages::STORAGE | self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; @@ -173,7 +176,7 @@ impl Default for DynamicStorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -224,6 +227,9 @@ impl DynamicStorageBuffer { self.label.as_deref() } + /// Set the buffer usage of the buffer. + /// + /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -236,7 +242,7 @@ impl DynamicStorageBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: self.buffer_usage, + usage: BufferUsages::STORAGE | self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index baa3558a62e187..aa3e5bdfe7cb40 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -44,7 +44,7 @@ impl From for UniformBuffer { buffer: None, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -57,7 +57,7 @@ impl Default for UniformBuffer { buffer: None, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -102,6 +102,9 @@ impl UniformBuffer { self.label.as_deref() } + /// Set the buffer usage of the buffer. + /// + /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -118,7 +121,7 @@ impl UniformBuffer { if self.changed || self.buffer.is_none() { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: self.buffer_usage, + usage: BufferUsages::UNIFORM | self.buffer_usage, contents: self.scratch.as_ref(), })); self.changed = false; @@ -166,7 +169,7 @@ impl Default for DynamicUniformBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, + buffer_usage: BufferUsages::COPY_DST, } } } @@ -218,6 +221,9 @@ impl DynamicUniformBuffer { self.label.as_deref() } + /// Set the buffer usage of the buffer. + /// + /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -235,7 +241,7 @@ impl DynamicUniformBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: self.buffer_usage, + usage: BufferUsages::UNIFORM | self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; From 324d8e99869bf924ff8dd156bcd3f1010c17f1fb Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Mon, 6 Feb 2023 17:21:05 +0530 Subject: [PATCH 4/8] Revert previous change and added more doc comments --- .../src/render_resource/storage_buffer.rs | 14 +++++++++----- .../src/render_resource/uniform_buffer.rs | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 0088a547fc5522..5bf0fa506a2778 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -46,7 +46,7 @@ impl From for StorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -60,7 +60,7 @@ impl Default for StorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -106,6 +106,8 @@ impl StorageBuffer { /// Set the buffer usage of the buffer. /// + /// This method only allows addition of flags to the default usage flags. + /// /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; @@ -125,7 +127,7 @@ impl StorageBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::STORAGE | self.buffer_usage, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; @@ -176,7 +178,7 @@ impl Default for DynamicStorageBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::STORAGE, } } } @@ -229,6 +231,8 @@ impl DynamicStorageBuffer { /// Set the buffer usage of the buffer. /// + /// This method only allows addition of flags to the default usage flags. + /// /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; @@ -242,7 +246,7 @@ impl DynamicStorageBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::STORAGE | self.buffer_usage, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index aa3e5bdfe7cb40..0b13d2ad9f87d3 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -44,7 +44,7 @@ impl From for UniformBuffer { buffer: None, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -57,7 +57,7 @@ impl Default for UniformBuffer { buffer: None, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -104,6 +104,8 @@ impl UniformBuffer { /// Set the buffer usage of the buffer. /// + /// This method only allows addition of flags to the default usage flags. + /// /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; @@ -121,7 +123,7 @@ impl UniformBuffer { if self.changed || self.buffer.is_none() { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::UNIFORM | self.buffer_usage, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.changed = false; @@ -169,7 +171,7 @@ impl Default for DynamicUniformBuffer { capacity: 0, label: None, changed: false, - buffer_usage: BufferUsages::COPY_DST, + buffer_usage: BufferUsages::COPY_DST | BufferUsages::UNIFORM, } } } @@ -223,6 +225,8 @@ impl DynamicUniformBuffer { /// Set the buffer usage of the buffer. /// + /// This method only allows addition of flags to the default usage flags. + /// /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; @@ -241,7 +245,7 @@ impl DynamicUniformBuffer { if self.capacity < size || self.changed { self.buffer = Some(device.create_buffer_with_data(&BufferInitDescriptor { label: self.label.as_deref(), - usage: BufferUsages::UNIFORM | self.buffer_usage, + usage: self.buffer_usage, contents: self.scratch.as_ref(), })); self.capacity = size; From f36d20bcdcd64b5efcb8963e43bfded6b6de2030 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Mon, 6 Feb 2023 23:36:45 +0530 Subject: [PATCH 5/8] fix ci --- crates/bevy_render/src/render_resource/storage_buffer.rs | 4 ++-- crates/bevy_render/src/render_resource/uniform_buffer.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 5bf0fa506a2778..d0972987dcfb36 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -108,7 +108,7 @@ impl StorageBuffer { /// /// This method only allows addition of flags to the default usage flags. /// - /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. + /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::STORAGE`. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -233,7 +233,7 @@ impl DynamicStorageBuffer { /// /// This method only allows addition of flags to the default usage flags. /// - /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::STORAGE. + /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::STORAGE`. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index 0b13d2ad9f87d3..c1b608384fbbe5 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -106,7 +106,7 @@ impl UniformBuffer { /// /// This method only allows addition of flags to the default usage flags. /// - /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. + /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::UNIFORM`. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; @@ -227,7 +227,7 @@ impl DynamicUniformBuffer { /// /// This method only allows addition of flags to the default usage flags. /// - /// The default values for buffer usage are BufferUsages::COPY_DST and BufferUsages::UNIFORM. + /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::UNIFORM`. pub fn set_usage(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; From 8fae902220d96d09136adf014a07af1caaea9660 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Tue, 7 Feb 2023 00:46:53 +0530 Subject: [PATCH 6/8] change set_usage to add_usages --- crates/bevy_render/src/render_resource/storage_buffer.rs | 4 ++-- crates/bevy_render/src/render_resource/uniform_buffer.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index d0972987dcfb36..43be2b41ff0250 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -109,7 +109,7 @@ impl StorageBuffer { /// This method only allows addition of flags to the default usage flags. /// /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::STORAGE`. - pub fn set_usage(&mut self, usage: BufferUsages) { + pub fn add_usages(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; } @@ -234,7 +234,7 @@ impl DynamicStorageBuffer { /// This method only allows addition of flags to the default usage flags. /// /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::STORAGE`. - pub fn set_usage(&mut self, usage: BufferUsages) { + pub fn add_usages(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; } diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index c1b608384fbbe5..aa340e4ffd43f8 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -107,7 +107,7 @@ impl UniformBuffer { /// This method only allows addition of flags to the default usage flags. /// /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::UNIFORM`. - pub fn set_usage(&mut self, usage: BufferUsages) { + pub fn add_usages(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; } @@ -228,7 +228,7 @@ impl DynamicUniformBuffer { /// This method only allows addition of flags to the default usage flags. /// /// The default values for buffer usage are `BufferUsages::COPY_DST` and `BufferUsages::UNIFORM`. - pub fn set_usage(&mut self, usage: BufferUsages) { + pub fn add_usages(&mut self, usage: BufferUsages) { self.buffer_usage |= usage; self.changed = true; } From 14f3c5ceebbacef67093b4160fdc3ba3276e4314 Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Tue, 7 Feb 2023 01:10:37 +0530 Subject: [PATCH 7/8] doc comment changes --- crates/bevy_render/src/render_resource/storage_buffer.rs | 4 ++-- crates/bevy_render/src/render_resource/uniform_buffer.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 43be2b41ff0250..55f3ff297e0280 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -104,7 +104,7 @@ impl StorageBuffer { self.label.as_deref() } - /// Set the buffer usage of the buffer. + /// Adds more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// @@ -229,7 +229,7 @@ impl DynamicStorageBuffer { self.label.as_deref() } - /// Set the buffer usage of the buffer. + /// Adds more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index aa340e4ffd43f8..19bafb1ac91f37 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -102,7 +102,7 @@ impl UniformBuffer { self.label.as_deref() } - /// Set the buffer usage of the buffer. + /// Adds more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// @@ -223,7 +223,7 @@ impl DynamicUniformBuffer { self.label.as_deref() } - /// Set the buffer usage of the buffer. + /// Adds more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// From 67103760ceabce98d621df7f5e1cb7b9f9f9d4fa Mon Sep 17 00:00:00 2001 From: SpeedRoll Date: Tue, 7 Feb 2023 01:21:23 +0530 Subject: [PATCH 8/8] doc comment changes --- crates/bevy_render/src/render_resource/storage_buffer.rs | 4 ++-- crates/bevy_render/src/render_resource/uniform_buffer.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/render_resource/storage_buffer.rs b/crates/bevy_render/src/render_resource/storage_buffer.rs index 55f3ff297e0280..19bdb00909ad52 100644 --- a/crates/bevy_render/src/render_resource/storage_buffer.rs +++ b/crates/bevy_render/src/render_resource/storage_buffer.rs @@ -104,7 +104,7 @@ impl StorageBuffer { self.label.as_deref() } - /// Adds more [`BufferUsages`] to the buffer. + /// Add more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// @@ -229,7 +229,7 @@ impl DynamicStorageBuffer { self.label.as_deref() } - /// Adds more [`BufferUsages`] to the buffer. + /// Add more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// diff --git a/crates/bevy_render/src/render_resource/uniform_buffer.rs b/crates/bevy_render/src/render_resource/uniform_buffer.rs index 19bafb1ac91f37..e59b21ec555e20 100644 --- a/crates/bevy_render/src/render_resource/uniform_buffer.rs +++ b/crates/bevy_render/src/render_resource/uniform_buffer.rs @@ -102,7 +102,7 @@ impl UniformBuffer { self.label.as_deref() } - /// Adds more [`BufferUsages`] to the buffer. + /// Add more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. /// @@ -223,7 +223,7 @@ impl DynamicUniformBuffer { self.label.as_deref() } - /// Adds more [`BufferUsages`] to the buffer. + /// Add more [`BufferUsages`] to the buffer. /// /// This method only allows addition of flags to the default usage flags. ///