pub struct UnsafeCommandBufferBuilder<A = StandardCommandBufferAllocator>where
    A: CommandBufferAllocator,{ /* private fields */ }
Expand description

Command buffer being built.

Safety

  • All submitted commands must be valid and follow the requirements of the Vulkan specification.
  • Any resources used by submitted commands must outlive the returned builder and its created command buffer. They must be protected against data races through manual synchronization.

Implementations§

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn bind_descriptor_sets( &mut self, pipeline_bind_point: PipelineBindPoint, pipeline_layout: &PipelineLayout, first_set: u32, descriptor_sets: &[DescriptorSetWithOffsets] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn bind_index_buffer( &mut self, index_buffer: &IndexBuffer ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn bind_pipeline_compute( &mut self, pipeline: &ComputePipeline ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn bind_pipeline_graphics( &mut self, pipeline: &GraphicsPipeline ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn bind_vertex_buffers( &mut self, first_binding: u32, vertex_buffers: &[Subbuffer<[u8]>] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn push_constants<Pc>( &mut self, pipeline_layout: &PipelineLayout, offset: u32, push_constants: &Pc ) -> Result<&mut Self, Box<ValidationError>>where Pc: BufferContents,

source

pub unsafe fn push_descriptor_set( &mut self, pipeline_bind_point: PipelineBindPoint, pipeline_layout: &PipelineLayout, set_num: u32, descriptor_writes: &[WriteDescriptorSet] ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn clear_color_image( &mut self, clear_info: &ClearColorImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn clear_depth_stencil_image( &mut self, clear_info: &ClearDepthStencilImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn fill_buffer( &mut self, dst_buffer: &Subbuffer<[u32]>, data: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn update_buffer<D>( &mut self, dst_buffer: &Subbuffer<D>, data: &D ) -> Result<&mut Self, Box<ValidationError>>where D: BufferContents + ?Sized,

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn copy_buffer( &mut self, copy_buffer_info: &CopyBufferInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn copy_image( &mut self, copy_image_info: &CopyImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn copy_buffer_to_image( &mut self, copy_buffer_to_image_info: &CopyBufferToImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn copy_image_to_buffer( &mut self, copy_image_to_buffer_info: &CopyImageToBufferInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn blit_image( &mut self, blit_image_info: &BlitImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn resolve_image( &mut self, resolve_image_info: &ResolveImageInfo ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn set_blend_constants( &mut self, constants: [f32; 4] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_color_write_enable( &mut self, enables: &[bool] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_cull_mode( &mut self, cull_mode: CullMode ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_bias( &mut self, constant_factor: f32, clamp: f32, slope_factor: f32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_bias_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_bounds( &mut self, bounds: RangeInclusive<f32> ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_bounds_test_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_compare_op( &mut self, compare_op: CompareOp ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_test_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_depth_write_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_discard_rectangle( &mut self, first_rectangle: u32, rectangles: &[Scissor] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_front_face( &mut self, face: FrontFace ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_line_stipple( &mut self, factor: u32, pattern: u16 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_line_width( &mut self, line_width: f32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_logic_op( &mut self, logic_op: LogicOp ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_patch_control_points( &mut self, num: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_primitive_restart_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_primitive_topology( &mut self, topology: PrimitiveTopology ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_rasterizer_discard_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_scissor( &mut self, first_scissor: u32, scissors: &[Scissor] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_scissor_with_count( &mut self, scissors: &[Scissor] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_stencil_compare_mask( &mut self, faces: StencilFaces, compare_mask: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_stencil_op( &mut self, faces: StencilFaces, fail_op: StencilOp, pass_op: StencilOp, depth_fail_op: StencilOp, compare_op: CompareOp ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_stencil_reference( &mut self, faces: StencilFaces, reference: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_stencil_test_enable( &mut self, enable: bool ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_stencil_write_mask( &mut self, faces: StencilFaces, write_mask: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_viewport( &mut self, first_viewport: u32, viewports: &[Viewport] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_viewport_with_count( &mut self, viewports: &[Viewport] ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn dispatch( &mut self, group_counts: [u32; 3] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn dispatch_indirect( &mut self, indirect_buffer: &Subbuffer<[DispatchIndirectCommand]> ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn draw( &mut self, vertex_count: u32, instance_count: u32, first_vertex: u32, first_instance: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn draw_indirect( &mut self, indirect_buffer: &Subbuffer<[DrawIndirectCommand]>, draw_count: u32, stride: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn draw_indexed( &mut self, index_count: u32, instance_count: u32, first_index: u32, vertex_offset: i32, first_instance: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn draw_indexed_indirect( &mut self, indirect_buffer: &Subbuffer<[DrawIndexedIndirectCommand]>, draw_count: u32, stride: u32 ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn begin_query( &mut self, query_pool: &QueryPool, query: u32, flags: QueryControlFlags ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn end_query( &mut self, query_pool: &QueryPool, query: u32 ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn write_timestamp( &mut self, query_pool: &QueryPool, query: u32, stage: PipelineStage ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn copy_query_pool_results<T>( &mut self, query_pool: &QueryPool, queries: Range<u32>, destination: &Subbuffer<[T]>, flags: QueryResultFlags ) -> Result<&mut Self, Box<ValidationError>>where T: QueryResultElement,

source

pub unsafe fn reset_query_pool( &mut self, query_pool: &QueryPool, queries: Range<u32> ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn begin_render_pass( &mut self, render_pass_begin_info: &RenderPassBeginInfo, subpass_begin_info: &SubpassBeginInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn next_subpass( &mut self, subpass_end_info: &SubpassEndInfo, subpass_begin_info: &SubpassBeginInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn end_render_pass( &mut self, subpass_end_info: &SubpassEndInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn begin_rendering( &mut self, rendering_info: &RenderingInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn end_rendering( &mut self ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn clear_attachments( &mut self, attachments: &[ClearAttachment], rects: &[ClearRect] ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn execute_commands( &mut self, command_buffers: &[Arc<dyn SecondaryCommandBufferAbstract>] ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn pipeline_barrier( &mut self, dependency_info: &DependencyInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn set_event( &mut self, event: &Event, dependency_info: &DependencyInfo ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn wait_events( &mut self, events: &[(Arc<Event>, DependencyInfo)] ) -> Result<&mut Self, Box<ValidationError>>

source

pub unsafe fn reset_event( &mut self, event: &Event, stages: PipelineStages ) -> Result<&mut Self, Box<ValidationError>>

source§

impl<A> UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source

pub unsafe fn new( allocator: &A, queue_family_index: u32, level: CommandBufferLevel, begin_info: CommandBufferBeginInfo ) -> Result<Self, VulkanError>

Creates a new builder, for recording commands.

Safety
  • begin_info must be valid.
source

pub fn build(self) -> Result<UnsafeCommandBuffer<A>, VulkanError>

Turns the builder into an actual command buffer.

source

pub fn queue_family_index(&self) -> u32

Returns the queue family index that this command buffer was created for.

source

pub fn level(&self) -> CommandBufferLevel

Returns the level of the command buffer.

source

pub fn usage(&self) -> CommandBufferUsage

Returns the usage that the command buffer was created with.

source

pub fn inheritance_info(&self) -> Option<&CommandBufferInheritanceInfo>

Returns the inheritance info of the command buffer, if it is a secondary command buffer.

Trait Implementations§

source§

impl<A> Debug for UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A> DeviceOwned for UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

source§

fn device(&self) -> &Arc<Device>

Returns the device that owns self.
source§

impl<A> VulkanObject for UnsafeCommandBufferBuilder<A>where A: CommandBufferAllocator,

§

type Handle = CommandBuffer

The type of the object.
source§

fn handle(&self) -> Self::Handle

Returns the raw Vulkan handle of the object.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> DeviceOwnedVulkanObject for Twhere T: DeviceOwned + VulkanObject,

source§

fn set_debug_utils_object_name( &self, object_name: Option<&str> ) -> Result<(), VulkanError>

Assigns a human-readable name to the object for debugging purposes. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.