pub enum GpuSyncKind {
CpuComplete,
OpenGlFence,
QueueOrder,
VulkanTimelineSemaphore,
SyncFd,
MetalSharedEvent,
D3D12Fence,
Unknown(u32),
}Expand description
How one side waits for the other’s GPU work on a shared texture.
A sync file descriptor or an OpenGL fence signals once, so when
AcquiredFrameHandle::release() succeeds, the session takes the one you
pass. A Vulkan timeline semaphore, Metal shared event, or D3D12 fence counts
up with each frame, so the one you pass stays yours. Keep it valid until a
detach or release of the session completes.
See mln_gpu_sync_kind in the
C API reference.
Variants§
CpuComplete
The work has already finished, so there is nothing to wait for.
OpenGlFence
handle is a GLsync in the session’s share group.
QueueOrder
The work was submitted to the queue that both sides share, so work submitted to that queue later runs after it.
VulkanTimelineSemaphore
handle is a VkSemaphore. Wait until it reaches value.
SyncFd
handle is a sync file descriptor.
handle is an MTLSharedEvent. Wait until it reaches value.
D3D12Fence
handle is a shared Windows handle to an ID3D12Fence. Wait until it
reaches value.
Unknown(u32)
Implementations§
Trait Implementations§
Source§impl Clone for GpuSyncKind
impl Clone for GpuSyncKind
Source§fn clone(&self) -> GpuSyncKind
fn clone(&self) -> GpuSyncKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for GpuSyncKind
Source§impl Debug for GpuSyncKind
impl Debug for GpuSyncKind
Source§impl Default for GpuSyncKind
impl Default for GpuSyncKind
impl Eq for GpuSyncKind
Source§impl Hash for GpuSyncKind
impl Hash for GpuSyncKind
Source§impl PartialEq for GpuSyncKind
impl PartialEq for GpuSyncKind
impl StructuralPartialEq for GpuSyncKind
Auto Trait Implementations§
impl Freeze for GpuSyncKind
impl RefUnwindSafe for GpuSyncKind
impl Send for GpuSyncKind
impl Sync for GpuSyncKind
impl Unpin for GpuSyncKind
impl UnsafeUnpin for GpuSyncKind
impl UnwindSafe for GpuSyncKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more