#[non_exhaustive]pub enum BackendKind {
Cpu,
Wgpu,
Vulkan,
D3D12,
D3D11,
Metal,
OpenGL,
OpenCl,
Cuda,
WebCodecs,
}Expand description
Identity of a compute backend. Used as a discriminant on error
variants, budget accounting, GpuContext, SyncPoint, etc.
#[non_exhaustive], so adding a backend is not a breaking change.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Cpu
Wgpu
wgpu only.wgpu::Device-backed work submitted via wgpu::Queue::submit.
Emitted when the sync primitive is a wgpu::SubmissionIndex and
the producer does not expose a lower-level (Vulkan / D3D12 / Metal)
handle.
Vulkan
Native Vulkan submit — the producer holds a VkDevice and minted
a VkSemaphore directly (typically a timeline semaphore).
D3D12
Native D3D12 submit — ID3D12CommandQueue::Signal on an
ID3D12Fence.
D3D11
Native D3D11 submit — IDXGIKeyedMutex::AcquireSync /
ReleaseSync on a shared texture.
Metal
Native Metal submit — MTLCommandQueue::commandBuffer followed by
encodeSignalEvent on an MTLSharedEvent.
OpenGL
Native OpenGL — glFenceSync for a GL-only fence, or a GL
semaphore (glGenSemaphoresEXT) imported from a cross-API handle.
OpenCl
opencl only.Cuda
cuda only.WebCodecs
web-codecs only.WebCodecs encode/decode target (browser). The caller consumes /
produces a web_sys::VideoFrame through a VideoEncoder /
VideoDecoder; as a shared-allocation target it selects the
OffscreenCanvas swapchain path. Gated on the web-codecs feature.
Trait Implementations§
Source§impl Clone for BackendKind
impl Clone for BackendKind
impl Copy for BackendKind
Source§impl Debug for BackendKind
impl Debug for BackendKind
impl Eq for BackendKind
Source§impl Hash for BackendKind
impl Hash for BackendKind
Source§impl PartialEq for BackendKind
impl PartialEq for BackendKind
impl StructuralPartialEq for BackendKind
Auto Trait Implementations§
impl Freeze for BackendKind
impl RefUnwindSafe for BackendKind
impl Send for BackendKind
impl Sync for BackendKind
impl Unpin for BackendKind
impl UnsafeUnpin for BackendKind
impl UnwindSafe for BackendKind
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.