pub unsafe trait PrimaryCommandBufferAbstract: VulkanObject<Handle = CommandBuffer> + DeviceOwned + Send + Sync {
    fn usage(&self) -> CommandBufferUsage;
    fn check_buffer_access(
        &self,
        buffer: &Buffer,
        range: Range<DeviceSize>,
        exclusive: bool,
        queue: &Queue
    ) -> Result<Option<(PipelineStages, AccessFlags)>, AccessCheckError>; fn check_image_access(
        &self,
        image: &Image,
        range: Range<DeviceSize>,
        exclusive: bool,
        expected_layout: ImageLayout,
        queue: &Queue
    ) -> Result<Option<(PipelineStages, AccessFlags)>, AccessCheckError>; fn execute(
        self,
        queue: Arc<Queue>
    ) -> Result<CommandBufferExecFuture<NowFuture>, CommandBufferExecError>
    where
        Self: Sized + 'static
, { ... } fn execute_after<F>(
        self,
        future: F,
        queue: Arc<Queue>
    ) -> Result<CommandBufferExecFuture<F>, CommandBufferExecError>
    where
        Self: Sized + 'static,
        F: GpuFuture
, { ... } }

Required Methods§

Returns the usage of this command buffer.

Provided Methods§

Executes this command buffer on a queue.

This function returns an object that implements the GpuFuture trait. See the documentation of the sync module for more information.

The command buffer is not actually executed until you call flush() on the object. You are encouraged to chain together as many futures as possible before calling flush(), and call .then_signal_future() before doing so. Note however that once you called execute() there is no way to cancel the execution, even if you didn’t flush yet.

Note: In the future this function may return -> impl GpuFuture instead of a concrete type.

Note: This is just a shortcut for execute_after(vulkano::sync::now(), queue).

Panics
  • Panics if the device of the command buffer is not the same as the device of the future.

Executes the command buffer after an existing future.

This function returns an object that implements the GpuFuture trait. See the documentation of the sync module for more information.

The command buffer is not actually executed until you call flush() on the object. You are encouraged to chain together as many futures as possible before calling flush(), and call .then_signal_future() before doing so. Note however that once you called execute() there is no way to cancel the execution, even if you didn’t flush yet.

Note: In the future this function may return -> impl GpuFuture instead of a concrete type.

This function requires the 'static lifetime to be on the command buffer. This is because this function returns a CommandBufferExecFuture whose job is to lock resources and keep them alive while they are in use by the GPU. If 'static wasn’t required, you could call std::mem::forget on that object and “unlock” these resources. For more information about this problem, search the web for “rust thread scoped leakpocalypse”.

Panics
  • Panics if the device of the command buffer is not the same as the device of the future.

Trait Implementations§

Formats the value using the given formatter. Read more

Implementors§