#[non_exhaustive]pub enum FusionError {
SelfAliasing(FusionSelfAliasingError),
Aliasing(FusionAliasingError),
OverDispatch(FusionOverDispatchError),
WorkgroupGeometry(FusionWorkgroupGeometryError),
}Expand description
Error returned when a fusion batch cannot be combined safely.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
SelfAliasing(FusionSelfAliasingError)
Two copies of a non-composable parser were placed in the same batch.
Aliasing(FusionAliasingError)
A cross-arm buffer alias was detected that cannot be fixed by a barrier (e.g. both arms write the same buffer without an intervening read-only phase).
OverDispatch(FusionOverDispatchError)
The fused launch geometry would over-dispatch the largest arm by more than the shared scheduling policy allows. Caller should fall back to per-arm dispatch or split the batch.
WorkgroupGeometry(FusionWorkgroupGeometryError)
An arm whose correctness depends on its own workgroup geometry was asked to run under the widened fused geometry.
Trait Implementations§
Source§impl Clone for FusionError
impl Clone for FusionError
Source§fn clone(&self) -> FusionError
fn clone(&self) -> FusionError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FusionError
impl Debug for FusionError
Source§impl Display for FusionError
impl Display for FusionError
impl Eq for FusionError
Source§impl Error for FusionError
impl Error for FusionError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<FusionError> for DecodeScanFuseError
impl From<FusionError> for DecodeScanFuseError
Source§fn from(source: FusionError) -> Self
fn from(source: FusionError) -> Self
Converts to this type from the input type.
Source§impl PartialEq for FusionError
impl PartialEq for FusionError
impl StructuralPartialEq for FusionError
Auto Trait Implementations§
impl Freeze for FusionError
impl RefUnwindSafe for FusionError
impl Send for FusionError
impl Sync for FusionError
impl Unpin for FusionError
impl UnsafeUnpin for FusionError
impl UnwindSafe for FusionError
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
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
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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