Enum vulkano::command_buffer::sys::Kind
source · pub enum Kind<R, F> {
Primary,
Secondary {
render_pass: Option<KindSecondaryRenderPass<R, F>>,
occlusion_query: KindOcclusionQuery,
query_statistics_flags: QueryPipelineStatisticFlags,
},
}
Expand description
Determines the kind of command buffer that we want to create.
Variants
Primary
A primary command buffer can execute all commands and can call secondary command buffers.
Secondary
Fields
render_pass: Option<KindSecondaryRenderPass<R, F>>
If Some
, can only call draw operations that can be executed from within a specific
subpass. Otherwise it can execute all dispatch and transfer operations, but not drawing
operations.
occlusion_query: KindOcclusionQuery
Whether it is allowed to have an active occlusion query in the primary command buffer when executing this secondary command buffer.
query_statistics_flags: QueryPipelineStatisticFlags
Which pipeline statistics queries are allowed to be active when this secondary command buffer starts.
Note that the pipeline_statistics_query
feature must be enabled if any of the flags
of this value are set.
A secondary command buffer.
Implementations
sourceimpl Kind<RenderPass<EmptySinglePassRenderPassDesc>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
impl Kind<RenderPass<EmptySinglePassRenderPassDesc>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
sourcepub fn primary(
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
pub fn primary(
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
Equivalent to Kind::Primary
.
Note: If you use
let kind = Kind::Primary;
in your code, you will probably get a compilation error because the Rust compiler couldn’t determine the template parameters ofKind
. To solve that problem in an easy way you can use this function instead.
sourcepub fn secondary(
occlusion_query: KindOcclusionQuery,
query_statistics_flags: QueryPipelineStatisticFlags
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
pub fn secondary(
occlusion_query: KindOcclusionQuery,
query_statistics_flags: QueryPipelineStatisticFlags
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
Equivalent to Kind::Secondary
.
Note: If you use
let kind = Kind::Secondary;
in your code, you will probably get a compilation error because the Rust compiler couldn’t determine the template parameters ofKind
. To solve that problem in an easy way you can use this function instead.