#[non_exhaustive]pub enum UnsupportedReason {
PlatformNotImplemented,
HostBackendUnavailable,
HostBackendMismatch,
NativeImportNotYetImplemented,
VulkanDisjointDmabufNotSupported,
VulkanDmabufExtensionNotEnabled,
VulkanForeignQueueExtensionNotEnabled,
}Expand description
Why a particular interop path is not available.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
PlatformNotImplemented
The platform code path exists but has not been implemented yet.
No wgpu backend could be detected on the host device.
HostBackendMismatch
The frame type requires a different wgpu backend than the host is using
(e.g. VulkanExternalImage on a Metal device).
NativeImportNotYetImplemented
A native frame variant (e.g. VulkanExternalImage) is defined in the
API but the corresponding import logic is not yet implemented.
VulkanDisjointDmabufNotSupported
The DMABUF planes refer to independent kernel allocations. Graft currently supports shared-fd multi-plane layouts; disjoint allocations require Vulkan disjoint image binding and are rejected explicitly.
VulkanDmabufExtensionNotEnabled
The wgpu Vulkan device was not constructed with the base DMABUF
extension set enabled, including VK_EXT_image_drm_format_modifier,
so external image creation would fail.
On Linux, use vulkan_dmabuf::create_dmabuf_host_context to obtain a
device with the required extensions.
VulkanForeignQueueExtensionNotEnabled
The imported image belongs to a non-Vulkan producer, but the host
device lacks VK_EXT_queue_family_foreign. On Linux, construct the
unified wgpu device with vulkan_dmabuf::create_dmabuf_host_context.
Trait Implementations§
Source§impl Clone for UnsupportedReason
impl Clone for UnsupportedReason
Source§impl Debug for UnsupportedReason
impl Debug for UnsupportedReason
impl Eq for UnsupportedReason
Source§impl PartialEq for UnsupportedReason
impl PartialEq for UnsupportedReason
impl StructuralPartialEq for UnsupportedReason
Auto Trait Implementations§
impl Freeze for UnsupportedReason
impl RefUnwindSafe for UnsupportedReason
impl Send for UnsupportedReason
impl Sync for UnsupportedReason
impl Unpin for UnsupportedReason
impl UnsafeUnpin for UnsupportedReason
impl UnwindSafe for UnsupportedReason
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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§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