Struct nannou_wgpu::CommandEncoder [−][src]
pub struct CommandEncoder { /* fields omitted */ }
Expand description
Encodes a series of GPU operations.
A command encoder can record RenderPass
es, ComputePass
es,
and transfer operations between driver-managed resources like Buffer
s and Texture
s.
When finished recording, call CommandEncoder::finish
to obtain a CommandBuffer
which may
be submitted for execution.
Implementations
Finishes recording and returns a CommandBuffer
that can be submitted for execution.
Begins recording of a render pass.
This function returns a RenderPass
object which records a single render pass.
Begins recording of a compute pass.
This function returns a ComputePass
object which records a single compute pass.
Copy data from one buffer to another.
Panics
- Buffer offsets or copy size not a multiple of
COPY_BUFFER_ALIGNMENT
. - Copy would overrun buffer.
- Copy within the same buffer.
pub fn copy_buffer_to_texture(
&mut self,
source: ImageCopyBuffer<&Buffer>,
destination: ImageCopyTexture<&Texture>,
copy_size: Extent3d
)
pub fn copy_buffer_to_texture(
&mut self,
source: ImageCopyBuffer<&Buffer>,
destination: ImageCopyTexture<&Texture>,
copy_size: Extent3d
)
Copy data from a buffer to a texture.
Panics
- Copy would overrun buffer.
- Copy would overrun texture.
source.layout.bytes_per_row
isn’t divisible byCOPY_BYTES_PER_ROW_ALIGNMENT
.
pub fn copy_texture_to_buffer(
&mut self,
source: ImageCopyTexture<&Texture>,
destination: ImageCopyBuffer<&Buffer>,
copy_size: Extent3d
)
pub fn copy_texture_to_buffer(
&mut self,
source: ImageCopyTexture<&Texture>,
destination: ImageCopyBuffer<&Buffer>,
copy_size: Extent3d
)
Copy data from a texture to a buffer.
Panics
- Copy would overrun buffer.
- Copy would overrun texture.
source.layout.bytes_per_row
isn’t divisible byCOPY_BYTES_PER_ROW_ALIGNMENT
.
pub fn copy_texture_to_texture(
&mut self,
source: ImageCopyTexture<&Texture>,
destination: ImageCopyTexture<&Texture>,
copy_size: Extent3d
)
pub fn copy_texture_to_texture(
&mut self,
source: ImageCopyTexture<&Texture>,
destination: ImageCopyTexture<&Texture>,
copy_size: Extent3d
)
Copy data from one texture to another.
Panics
- Textures are not the same type
- If a depth texture, or a multisampled texture, the entire texture must be copied
- Copy would overrun either texture
Clears texture to zero.
Where possible it may be significantly more efficient to perform clears via render passes!
Panics
CLEAR_COMMANDS
extension not enabled- Texture does not have
COPY_DST
usage. - Range is out of bounds
Clears buffer to zero.
Panics
CLEAR_COMMANDS
extension not enabled- Buffer does not have
COPY_DST
usage. - Range it out of bounds
Inserts debug marker.
Start record commands and group it into debug marker group.
Stops command recording and creates debug group.
Features::TIMESTAMP_QUERY
must be enabled on the device in order to call these functions.
Issue a timestamp command at this point in the queue. The timestamp will be written to the specified query set, at the specified index.
Must be multiplied by Queue::get_timestamp_period
to get
the value in nanoseconds. Absolute values have no meaning,
but timestamps can be subtracted to get the time it takes
for a string of operations to complete.
Features::TIMESTAMP_QUERY
or Features::PIPELINE_STATISTICS_QUERY
must be enabled on the device in order to call these functions.
Resolve a query set, writing the results into the supplied destination buffer.
Queries may be between 8 and 40 bytes each. See PipelineStatisticsTypes
for more information.