pub enum VerifyErrorKind {
DuplicateResultId(u32),
DanglingResultRef {
operand_pos: usize,
ref_id: u32,
},
LiteralPoolOutOfRange {
operand_pos: usize,
pool_idx: u32,
pool_size: usize,
},
ChildBodyIndexOutOfRange {
operand_pos: usize,
body_idx: u32,
child_count: usize,
},
LiteralOpMissingPoolOperand,
OperandCountTooShort {
expected_min: usize,
got: usize,
},
DispatchZeroDim {
axis: u8,
},
DuplicateBindingSlotId {
slot: u32,
},
HostBindingInWorkgroupRange {
slot: u32,
},
WorkgroupBindingInHostRange {
slot: u32,
},
}Variants§
DuplicateResultId(u32)
DanglingResultRef
LiteralPoolOutOfRange
ChildBodyIndexOutOfRange
LiteralOpMissingPoolOperand
OperandCountTooShort
DispatchZeroDim
dispatch.workgroup_size[axis] is zero. A kernel with a zero
dim never runs - almost certainly a host-side bug.
DuplicateBindingSlotId
Two BindingSlot entries share the same .slot field. The
emitters look up bindings by .slot; duplicates make the
lookup ambiguous.
HostBindingInWorkgroupRange
A host-bound binding (Global / Constant / Uniform) sits
in the workgroup-reserved slot range (>= 1<<24). Backend
bind-group layouts cap at 1000 bindings on wgpu and similar
limits elsewhere; a host slot in the reserved range fails
layout creation with a “binding index N greater than maximum”
validator error. Earlier rewrites should have allocated the
new slot in the host range.
WorkgroupBindingInHostRange
A workgroup binding (Shared / Scratch) sits in the
host-bindable slot range (< 1<<24). The host dispatch path
addresses host bindings by slot id; a workgroup binding in
that range can collide with a Global binding’s slot id and
silently steer load/store ops to the wrong memory class.
Trait Implementations§
Source§impl Clone for VerifyErrorKind
impl Clone for VerifyErrorKind
Source§fn clone(&self) -> VerifyErrorKind
fn clone(&self) -> VerifyErrorKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for VerifyErrorKind
impl Debug for VerifyErrorKind
Source§impl<'de> Deserialize<'de> for VerifyErrorKind
impl<'de> Deserialize<'de> for VerifyErrorKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for VerifyErrorKind
Source§impl PartialEq for VerifyErrorKind
impl PartialEq for VerifyErrorKind
Source§impl Serialize for VerifyErrorKind
impl Serialize for VerifyErrorKind
impl StructuralPartialEq for VerifyErrorKind
Auto Trait Implementations§
impl Freeze for VerifyErrorKind
impl RefUnwindSafe for VerifyErrorKind
impl Send for VerifyErrorKind
impl Sync for VerifyErrorKind
impl Unpin for VerifyErrorKind
impl UnsafeUnpin for VerifyErrorKind
impl UnwindSafe for VerifyErrorKind
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.