Expand description
This crate revolves around command recording and submission.
Structs§
- Command
Buffer - Command buffer wrapper. This wrapper defines state with usage, level and ability to be individually reset at type level. This way many methods become safe.
- Command
Pool - Simple pool wrapper.
Doesn’t provide any guarantees.
Wraps raw buffers into
CommandCommand buffer
. - Compute
- Capable of compute commands execution.
- Dispatch
Command - Draw command for dispatch.
- Draw
Command - Draw command for
draw_indirect
. - Draw
Indexed Command - Draw command for
draw_indexed_indirect
. - Encoder
- Trait to encode commands outside render pass.
- Encoder
Common - Encoder for recording commands inside or outside renderpass.
- Executable
State - Command buffer in executable state can be submitted.
- Execute
- Capable of either compute or graphics commands execution.
- Families
- Collection of queue families of one device.
- Family
- Family of the command queues. Queues from one family can share resources and execute command buffers associated with the family. All queues of the family have same capabilities.
- Family
Id - Family id.
- Fence
- Fence wrapper.
- Fence
Epoch - Queue epoch is the point in particluar queue timeline when fence is submitted.
- General
- Capable of any commands execution.
- Graphics
- Capable of graphics command execution.
- Individual
Reset - This flag specify that buffer can be reset individually.
- Initial
State - Command buffer state in which all buffers start. Resetting also moves buffer to this state.
- Invalid
State - One-shot buffers move to invalid state after execution. Invalidating any resource referenced in any command recorded to the buffer implicitly move it to the invalid state.
- Multi
Shot - Command buffer with this usage flag will move back to executable state after execution.
- NoIndividual
Reset - This flag specify that buffer cannot be reset individually.
- NoSimultaneous
Use - Additional flag that disallows resubmission of a command buffer while it is still in a pending state
It must be completed, i.e. a fence must submitted with this buffer or later into the same queue
and be waited on before buffer resubmission.
Submit<B, NoSimultaneousUse>
cannot be submitted more than once. - OneShot
- Command buffer with this usage flag will move to invalid state after execution. Resubmitting will require reset and rerecording commands.
- Outside
Render Pass - Primary buffers must has this flag as they cannot has
RenderPassContinue
flag. Secondary buffers with this usage flag cannot be executed as part of render-pass. - Pending
State - Command buffer in pending state are submitted to the device.
Command buffer in pending state must never be invalidated or reset because device may read it at the moment.
Proving device is done with buffer requires nontrivial strategies.
Therefore moving buffer from pending state requires
unsafe
method. - Primary
Level - Command buffers of this level can be submitted to the command queues.
- Queue
- Command queue wrapper.
- QueueId
- Queue id.
- Recording
State - Command buffer in recording state could be populated with commands.
- Render
Pass Continue - Buffers with this usage flag must be secondary buffers executed entirely in render-pass.
- Render
Pass Encoder - Special encoder to record render-pass commands.
- Render
Pass Inline Encoder - Special encoder to record commands inside render pass.
- Render
Pass Secondary Encoder - Special encoder to execute secondary buffers inside render pass.
- Secondary
Level - Command buffers of this level can be executed as part of the primary buffers.
- Simultaneous
Use - Additional flag that allows resubmission of a command buffer while it is still in a pending state.
Submit<B, SimultaneousUse>
can be submitted more than once. - Submission
- Command queue submission.
- Submit
- Structure contains command buffer ready for submission.
- Transfer
- Capable of transfer only.
Enums§
- Queue
Type - The type of the queue, an enum encompassing
queue::Capability
Traits§
- Begin
Info - Begin info for specific level and render pass relation.
- Capability
- Abstract capability specifier.
- Level
- Type-level buffer level flag. It defines whether buffer can be submitted to the command queues or executed as part of the primary buffers.
- Render
Pass Relation - Trait implemented for type-level render pass relation flags.
RenderPassContinue
andOutsideRenderPass
. - Reset
- Specify flags required for command pool creation to allow individual buffer reset.
- Resettable
- States in which command buffer can de reset.
- Submittable
- Submittable object.
Values that implement this trait can be submitted to the queues
or executed as part of primary buffers (in case of
Submittable<B, SecondaryLevel>
). - Supports
- Check if capability supported.
- Usage
- Type-level usage flags. It defines if buffer can be resubmitted without reset. Or even resubmitted while being executed.
Functions§
- families_
from_ ⚠device - Query queue families from device.
Type Aliases§
- Pending
Once State - Command buffer in pending state are submitted to the device.
Command buffer in pending state must never be invalidated or reset because device may read it at the moment.
Proving device is done with buffer requires nontrivial strategies.
Therefore moving buffer from pending state requires
unsafe
method. This type alias can be used for one-shot command buffers.