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
impl VulkanHostGate
Sourcepub fn signal(&self) -> VulkanGateSignal
pub fn signal(&self) -> VulkanGateSignal
A raising handle for another thread.
Trait Implementations§
Source§impl Debug for VulkanHostGate
impl Debug for VulkanHostGate
Source§impl Drop for VulkanHostGate
impl Drop for VulkanHostGate
Auto Trait Implementations§
impl !Freeze for VulkanHostGate
impl !RefUnwindSafe for VulkanHostGate
impl !Send for VulkanHostGate
impl !Sync for VulkanHostGate
impl !UnwindSafe for VulkanHostGate
impl Unpin for VulkanHostGate
impl UnsafeUnpin for VulkanHostGate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more