Skip to main content

VulkanHostGate

Struct VulkanHostGate 

Source
pub struct VulkanHostGate { /* private fields */ }
Expand description

Vulkan backend instance bound to one physical device. A timeline semaphore the host raises, which VulkanAccelerator::submit_after submissions wait on (ADR 0013): work is queued before its inputs exist, and whoever produces them (a thread finishing a storage read, say) releases it with a VulkanGateSignal, without a round trip through the thread that owns the backend.

Dropping the gate releases every submission still waiting on it, then waits for the device to idle before destroying the semaphore, so no submission can wait forever.

Implementations§

Source§

impl VulkanHostGate

Source

pub fn signal(&self) -> VulkanGateSignal

A raising handle for another thread.

Trait Implementations§

Source§

impl Debug for VulkanHostGate

Source§

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

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

impl Drop for VulkanHostGate

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. 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 T
where 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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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.