pub(crate) struct BakedCommands {
pub(crate) encoder: InnerCommandEncoder,
pub(crate) trackers: Tracker,
pub(crate) temp_resources: Vec<TempResource>,
pub(crate) indirect_draw_validation_resources: DrawResources,
buffer_memory_init_actions: Vec<BufferInitTrackerAction>,
texture_memory_actions: CommandBufferTextureMemoryActions,
pub(crate) query_set_writes: FastHashMap<TrackerIndex, BitVec>,
pub(crate) deferred_query_set_resolves: Vec<DeferredQuerySetResolve>,
}Expand description
Look at the documentation for CommandBufferMutable for an explanation of
the fields in this struct. This is the “built” counterpart to that type.
Fields§
§encoder: InnerCommandEncoder§trackers: Tracker§temp_resources: Vec<TempResource>§indirect_draw_validation_resources: DrawResources§buffer_memory_init_actions: Vec<BufferInitTrackerAction>§texture_memory_actions: CommandBufferTextureMemoryActions§query_set_writes: FastHashMap<TrackerIndex, BitVec>§deferred_query_set_resolves: Vec<DeferredQuerySetResolve>Implementations§
Source§impl BakedCommands
impl BakedCommands
Sourcepub(crate) fn initialize_buffer_memory(
&mut self,
device_tracker: &mut DeviceTracker,
snatch_guard: &SnatchGuard<'_>,
)
pub(crate) fn initialize_buffer_memory( &mut self, device_tracker: &mut DeviceTracker, snatch_guard: &SnatchGuard<'_>, )
Initialize buffers.
Inserts all buffer initializations that are going to be needed for executing the commands, and updates resource init states accordingly.
The caller is responsible for checking that any buffer this may touch has not been destroyed, and must have done that check under the same snatch guard that is passed to this function.
§Panics
If a destroyed buffer is encountered.
Sourcepub(crate) fn initialize_texture_memory(
&mut self,
device_tracker: &mut DeviceTracker,
device: &Device,
snatch_guard: &SnatchGuard<'_>,
) -> Result<Vec<TextureSurfaceDiscard>, ClearError>
pub(crate) fn initialize_texture_memory( &mut self, device_tracker: &mut DeviceTracker, device: &Device, snatch_guard: &SnatchGuard<'_>, ) -> Result<Vec<TextureSurfaceDiscard>, ClearError>
Initialize textures.
Inserts all texture initializations that are going to be needed for executing the commands, and updates resource init states accordingly. Any non-3D textures that are left discarded by this command buffer will be marked as uninitialized, and a list of any 3D depth slices is returned, to be reinitialized just prior to the end of the command buffer.
The caller is responsible for checking that any texture this may touch has not been destroyed, and must have done that check under the same snatch guard that is passed to this function.
Note that any error returned from this function will become device loss in
crate::device::queue::Queue::submit.
§Panics
If a destroyed texture is encountered.
Sourcepub(crate) fn initialize_discarded_depth_slices(
&mut self,
discards: Vec<TextureSurfaceDiscard>,
device_tracker: &mut DeviceTracker,
device: &Device,
snatch_guard: &SnatchGuard<'_>,
) -> Result<(), ClearError>
pub(crate) fn initialize_discarded_depth_slices( &mut self, discards: Vec<TextureSurfaceDiscard>, device_tracker: &mut DeviceTracker, device: &Device, snatch_guard: &SnatchGuard<'_>, ) -> Result<(), ClearError>
Reinitialize any depth slices that were discarded during the command buffer and not subsequently reinitialized.
This is necessary because the initialization tracker does not track the status of individual depth slices.
We do not optimize the case where every depth slice of a 3D texture is discarded.
pub(crate) fn process_deferred_query_set_resolves( &mut self, device: &Device, snatch_guard: &SnatchGuard<'_>, ) -> Result<(), DeviceError>
Auto Trait Implementations§
impl Freeze for BakedCommands
impl !RefUnwindSafe for BakedCommands
impl Send for BakedCommands
impl Sync for BakedCommands
impl Unpin for BakedCommands
impl !UnwindSafe for BakedCommands
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more