Struct wgpu_core::track::UsageScope
source · pub(crate) struct UsageScope<'a> {
pub pool: &'a Mutex<Vec<(BufferUsageScope, TextureUsageScope)>>,
pub buffers: BufferUsageScope,
pub textures: TextureUsageScope,
}
Expand description
A usage scope tracker. Only needs to store stateful resources as stateless resources cannot possibly have a usage conflict.
Fields§
§pool: &'a Mutex<Vec<(BufferUsageScope, TextureUsageScope)>>
§buffers: BufferUsageScope
§textures: TextureUsageScope
Implementations§
source§impl UsageScope<'static>
impl UsageScope<'static>
pub fn new_pooled<'d>( pool: &'d Mutex<Vec<(BufferUsageScope, TextureUsageScope)>>, tracker_indices: &TrackerIndexAllocators, ) -> UsageScope<'d>
source§impl<'a> UsageScope<'a>
impl<'a> UsageScope<'a>
sourcepub unsafe fn merge_bind_group(
&mut self,
bind_group: &BindGroupStates,
) -> Result<(), ResourceUsageCompatibilityError>
pub unsafe fn merge_bind_group( &mut self, bind_group: &BindGroupStates, ) -> Result<(), ResourceUsageCompatibilityError>
Merge the inner contents of a bind group into the usage scope.
Only stateful things are merged in herell other resources are owned indirectly by the bind group.
§Safety
The maximum ID given by each bind group resource must be less than the
length of the storage given at the call to new
.
sourcepub unsafe fn merge_render_bundle(
&mut self,
render_bundle: &RenderBundleScope,
) -> Result<(), ResourceUsageCompatibilityError>
pub unsafe fn merge_render_bundle( &mut self, render_bundle: &RenderBundleScope, ) -> Result<(), ResourceUsageCompatibilityError>
Merge the inner contents of a bind group into the usage scope.
Only stateful things are merged in herell other resources are owned indirectly by a bind group or are merged directly into the command buffer tracker.
§Safety
The maximum ID given by each bind group resource must be less than the
length of the storage given at the call to new
.
Trait Implementations§
source§impl<'a> Debug for UsageScope<'a>
impl<'a> Debug for UsageScope<'a>
Auto Trait Implementations§
impl<'a> Freeze for UsageScope<'a>
impl<'a> !RefUnwindSafe for UsageScope<'a>
impl<'a> Send for UsageScope<'a>
impl<'a> Sync for UsageScope<'a>
impl<'a> Unpin for UsageScope<'a>
impl<'a> !UnwindSafe for UsageScope<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more