Struct vulkano::command_buffer::cb::StateCacheLayer [] [src]

pub struct StateCacheLayer<I> { /* fields omitted */ }

Layer around a command buffer builder that caches the current state of the command buffer and avoids redundant state changes.

For example if you add a command that sets the current vertex buffer, then later another command that sets the current vertex buffer to the same value, then the second one will be discarded by this layer.

As a general rule there's no reason not to use this layer unless you know that your commands are already optimized in this regard.

Safety

This layer expects that the commands passed to it all belong to the same device.

Since this layer can potentially optimize out some commands, a mismatch between devices could potentially go undetected if it is checked in a lower layer.

Methods

impl<I> StateCacheLayer<I>
[src]

Builds a new StateCacheLayer.

It is safe to start caching at any point of the construction of a command buffer.

Destroys the layer and returns the underlying command buffer.

Trait Implementations

impl<I> DeviceOwned for StateCacheLayer<I> where
    I: DeviceOwned
[src]

Returns the device that owns Self.

impl<I> CommandBufferBuilder for StateCacheLayer<I> where
    I: CommandBufferBuilder
[src]

Returns the queue family of the command buffer builder.

Adds a command that writes the content of a buffer. Read more

Adds a command that writes data to a buffer.

Adds a command that copies from a buffer to another.

Adds a command that copies the content of a buffer to an image. Read more

Same as copy_buffer_to_image but lets you specify a range for the destination image.

Adds a command that starts a render pass. Read more

Adds a command that jumps to the next subpass of the current render pass.

Adds a command that ends the current render pass. Read more

Adds a command that draws. Read more

Adds a command that draws indexed vertices. Read more

Adds an indirect draw command. Read more

Executes a compute shader.

Builds the actual command buffer. Read more

Returns true if the pool of the builder supports graphics operations.

Returns true if the pool of the builder supports compute operations.

impl<Pl, I, O> AddCommand<CmdBindPipeline<Pl>> for StateCacheLayer<I> where
    I: AddCommand<CmdBindPipeline<Pl>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<Cb, I, O> AddCommand<CmdExecuteCommands<Cb>> for StateCacheLayer<I> where
    I: AddCommand<CmdExecuteCommands<Cb>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<I, O> AddCommand<CmdSetState> for StateCacheLayer<I> where
    I: AddCommand<CmdSetState, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<I, O, B> AddCommand<CmdBindVertexBuffers<B>> for StateCacheLayer<I> where
    I: AddCommand<CmdBindVertexBuffers<B>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<I, O, E> CommandBufferBuild for StateCacheLayer<I> where
    I: CommandBufferBuild<Out = O, Err = E>, 
[src]

The type of the built command buffer.

Error that can be returned when building.

Builds the command buffer.

impl<'a, I, O, Rp, F> AddCommand<CmdBeginRenderPass<Rp, F>> for StateCacheLayer<I> where
    I: AddCommand<CmdBeginRenderPass<Rp, F>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, Pl> AddCommand<CmdBindDescriptorSets<S, Pl>> for StateCacheLayer<I> where
    I: AddCommand<CmdBindDescriptorSets<S, Pl>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, B> AddCommand<CmdBindIndexBuffer<B>> for StateCacheLayer<I> where
    I: AddCommand<CmdBindIndexBuffer<B>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, D> AddCommand<CmdBlitImage<S, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdBlitImage<S, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdClearAttachments> for StateCacheLayer<I> where
    I: AddCommand<CmdClearAttachments, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, D> AddCommand<CmdCopyBuffer<S, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdCopyBuffer<S, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, D> AddCommand<CmdCopyBufferToImage<S, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdCopyBufferToImage<S, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, D> AddCommand<CmdCopyImage<S, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdCopyImage<S, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdDispatchRaw> for StateCacheLayer<I> where
    I: AddCommand<CmdDispatchRaw, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdDrawIndexedRaw> for StateCacheLayer<I> where
    I: AddCommand<CmdDrawIndexedRaw, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, B> AddCommand<CmdDrawIndirectRaw<B>> for StateCacheLayer<I> where
    I: AddCommand<CmdDrawIndirectRaw<B>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdDrawRaw> for StateCacheLayer<I> where
    I: AddCommand<CmdDrawRaw, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdEndRenderPass> for StateCacheLayer<I> where
    I: AddCommand<CmdEndRenderPass, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, B> AddCommand<CmdFillBuffer<B>> for StateCacheLayer<I> where
    I: AddCommand<CmdFillBuffer<B>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdNextSubpass> for StateCacheLayer<I> where
    I: AddCommand<CmdNextSubpass, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, Pc, Pl> AddCommand<CmdPushConstants<Pc, Pl>> for StateCacheLayer<I> where
    I: AddCommand<CmdPushConstants<Pc, Pl>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, S, D> AddCommand<CmdResolveImage<S, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdResolveImage<S, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O> AddCommand<CmdSetEvent> for StateCacheLayer<I> where
    I: AddCommand<CmdSetEvent, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more

impl<'a, I, O, B, D> AddCommand<CmdUpdateBuffer<B, D>> for StateCacheLayer<I> where
    I: AddCommand<CmdUpdateBuffer<B, D>, Out = O>, 
[src]

The new command buffer builder type.

Adds the command. This takes ownership of the builder and returns a new builder with the command appended at the end of it. Read more