Struct vulkano::sync::Fence[][src]

pub struct Fence<D = Arc<Device>> where
    D: SafeDeref<Target = Device>, 
{ /* fields omitted */ }

A fence is used to know when a command buffer submission has finished its execution.

When a command buffer accesses a resource, you have to ensure that the CPU doesn’t access the same resource simultaneously (except for concurrent reads). Therefore in order to know when the CPU can access a resource again, a fence has to be used.

Implementations

impl<D> Fence<D> where
    D: SafeDeref<Target = Device>, 
[src]

pub fn from_pool(device: D) -> Result<Fence<D>, OomError>[src]

Takes a fence from the vulkano-provided fence pool. If the pool is empty, a new fence will be allocated. Upon drop, the fence is put back into the pool.

For most applications, using the fence pool should be preferred, in order to avoid creating new fences every frame.

pub fn alloc(device: D) -> Result<Fence<D>, OomError>[src]

Builds a new fence.

pub fn alloc_signaled(device: D) -> Result<Fence<D>, OomError>[src]

Builds a new fence in signaled state.

pub fn ready(&self) -> Result<bool, OomError>[src]

Returns true if the fence is signaled.

pub fn wait(&self, timeout: Option<Duration>) -> Result<(), FenceWaitError>[src]

Waits until the fence is signaled, or at least until the timeout duration has elapsed.

Returns Ok if the fence is now signaled. Returns Err if the timeout was reached instead.

If you pass a duration of 0, then the function will return without blocking.

pub fn multi_wait<'a, I>(
    iter: I,
    timeout: Option<Duration>
) -> Result<(), FenceWaitError> where
    I: IntoIterator<Item = &'a Fence<D>>,
    D: 'a, 
[src]

Waits for multiple fences at once.

Panic

Panics if not all fences belong to the same device.

pub fn reset(&mut self) -> Result<(), OomError>[src]

Resets the fence.

pub fn multi_reset<'a, I>(iter: I) -> Result<(), OomError> where
    I: IntoIterator<Item = &'a mut Fence<D>>,
    D: 'a, 
[src]

Resets multiple fences at once.

Panic

  • Panics if not all fences belong to the same device.

Trait Implementations

impl<D: Debug> Debug for Fence<D> where
    D: SafeDeref<Target = Device>, 
[src]

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

Formats the value using the given formatter. Read more

impl DeviceOwned for Fence[src]

fn device(&self) -> &Arc<Device>[src]

Returns the device that owns Self.

impl<D> Drop for Fence<D> where
    D: SafeDeref<Target = Device>, 
[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl<D> VulkanObject for Fence<D> where
    D: SafeDeref<Target = Device>, 
[src]

type Object = Fence

The type of the object.

const TYPE: ObjectType[src]

The ObjectType of the internal Vulkan handle.

fn internal_object(&self) -> Fence[src]

Returns a reference to the object.

Auto Trait Implementations

impl<D> RefUnwindSafe for Fence<D> where
    D: RefUnwindSafe

impl<D> Send for Fence<D> where
    D: Send

impl<D> Sync for Fence<D> where
    D: Sync

impl<D> Unpin for Fence<D> where
    D: Unpin

impl<D> UnwindSafe for Fence<D> where
    D: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Content for T[src]

pub fn ref_from_ptr(*mut c_void, usize) -> Option<*mut T>[src]

Builds a pointer to this type from a raw pointer.

pub fn is_size_suitable(usize) -> bool[src]

Returns true if the size is suitable to store a type like this.

pub fn indiv_size() -> usize[src]

Returns the size of an individual element.

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.