[−][src]Struct vulkano::command_buffer::pool::UnsafeCommandPool
Low-level implementation of a command pool.
A command pool is always tied to a specific queue family. Command buffers allocated from a pool can only be executed on the corresponding queue family.
This struct doesn't implement the Sync
trait because Vulkan command pools are not thread
safe. In other words, you can only use a pool from one thread at a time.
Methods
impl UnsafeCommandPool
[src]
pub fn new(
device: Arc<Device>,
queue_family: QueueFamily,
transient: bool,
reset_cb: bool
) -> Result<UnsafeCommandPool, OomError>
[src]
device: Arc<Device>,
queue_family: QueueFamily,
transient: bool,
reset_cb: bool
) -> Result<UnsafeCommandPool, OomError>
Creates a new pool.
The command buffers created with this pool can only be executed on queues of the given family.
Setting transient
to true is a hint to the implementation that the command buffers will
be short-lived.
Setting reset_cb
to true means that command buffers can be reset individually.
Panic
- Panics if the queue family doesn't belong to the same physical device as
device
.
pub unsafe fn reset(&self, release_resources: bool) -> Result<(), OomError>
[src]
Resets the pool, which resets all the command buffers that were allocated from it.
If release_resources
is true, it is a hint to the implementation that it should free all
the memory internally allocated for this pool.
Safety
The command buffers allocated from this pool jump to the initial state.
pub fn trim(&self) -> Result<(), CommandPoolTrimError>
[src]
Trims a command pool, which recycles unused internal memory from the command pool back to the system.
Command buffers allocated from the pool are not affected by trimming.
This function is supported only if the VK_KHR_maintenance1
extension was enabled at
device creation. Otherwise an error is returned.
Since this operation is purely an optimization it is legitimate to call this function and
simply ignore any possible error.
pub fn alloc_command_buffers(
&self,
secondary: bool,
count: usize
) -> Result<UnsafeCommandPoolAllocIter, OomError>
[src]
&self,
secondary: bool,
count: usize
) -> Result<UnsafeCommandPoolAllocIter, OomError>
Allocates count
command buffers.
If secondary
is true, allocates secondary command buffers. Otherwise, allocates primary
command buffers.
pub unsafe fn free_command_buffers<I>(&self, command_buffers: I) where
I: Iterator<Item = UnsafeCommandPoolAlloc>,
[src]
I: Iterator<Item = UnsafeCommandPoolAlloc>,
Frees individual command buffers.
Safety
The command buffers must have been allocated from this pool. They must not be in use.
pub fn queue_family(&self) -> QueueFamily
[src]
Returns the queue family on which command buffers of this pool can be executed.
Trait Implementations
impl DeviceOwned for UnsafeCommandPool
[src]
impl VulkanObject for UnsafeCommandPool
[src]
type Object = CommandPool
The type of the object.
const TYPE: DebugReportObjectTypeEXT
[src]
fn internal_object(&self) -> CommandPool
[src]
impl Send for UnsafeCommandPool
[src]
impl Drop for UnsafeCommandPool
[src]
impl Debug for UnsafeCommandPool
[src]
Auto Trait Implementations
impl Unpin for UnsafeCommandPool
impl !Sync for UnsafeCommandPool
impl UnwindSafe for UnsafeCommandPool
impl RefUnwindSafe for UnsafeCommandPool
Blanket Implementations
impl<T> DeviceOwned for T where
T: Deref,
<T as Deref>::Target: DeviceOwned,
[src]
T: Deref,
<T as Deref>::Target: DeviceOwned,
impl<T> Content for T
[src]
fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>
[src]
fn is_size_suitable(usize) -> bool
[src]
fn indiv_size() -> usize
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,