#[repr(C, align(8))]pub struct StateDescriptor {
pub magic: u32,
pub version: u32,
pub total_size: u64,
pub external_ptr: u64,
}Expand description
Descriptor stored in _reserved when using external state.
When state is too large to embed, this 24-byte descriptor points to the external GPU memory location.
Fields§
§magic: u32Magic number for validation (STATE_DESCRIPTOR_MAGIC).
version: u32State version number.
total_size: u64Total size of external state in bytes.
external_ptr: u64Pointer to external state buffer (GPU address).
Implementations§
Source§impl StateDescriptor
impl StateDescriptor
Sourcepub const fn new(
version: u32,
total_size: u64,
external_ptr: u64,
) -> StateDescriptor
pub const fn new( version: u32, total_size: u64, external_ptr: u64, ) -> StateDescriptor
Create a new state descriptor.
Sourcepub fn is_external(&self) -> bool
pub fn is_external(&self) -> bool
Check if state is external (has external pointer).
Sourcepub fn is_embedded(&self) -> bool
pub fn is_embedded(&self) -> bool
Check if state is embedded (no external pointer).
Trait Implementations§
Source§impl Clone for StateDescriptor
impl Clone for StateDescriptor
Source§fn clone(&self) -> StateDescriptor
fn clone(&self) -> StateDescriptor
Returns a duplicate of the value. Read more
1.0.0 · 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 StateDescriptor
impl Debug for StateDescriptor
Source§impl Default for StateDescriptor
impl Default for StateDescriptor
Source§fn default() -> StateDescriptor
fn default() -> StateDescriptor
Returns the “default value” for a type. Read more
Source§impl EmbeddedState for StateDescriptor
impl EmbeddedState for StateDescriptor
impl Copy for StateDescriptor
impl Pod for StateDescriptor
Auto Trait Implementations§
impl Freeze for StateDescriptor
impl RefUnwindSafe for StateDescriptor
impl Send for StateDescriptor
impl Sync for StateDescriptor
impl Unpin for StateDescriptor
impl UnwindSafe for StateDescriptor
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CheckedBitPattern for Twhere
T: AnyBitPattern,
impl<T> CheckedBitPattern for Twhere
T: AnyBitPattern,
Source§type Bits = T
type Bits = T
Self must have the same layout as the specified Bits except for
the possible invalid bit patterns being checked during
is_valid_bit_pattern.Source§fn is_valid_bit_pattern(_bits: &T) -> bool
fn is_valid_bit_pattern(_bits: &T) -> bool
If this function returns true, then it must be valid to reinterpret
bits
as &Self.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> EmbeddedStateSize for Twhere
T: EmbeddedState,
impl<T> EmbeddedStateSize for Twhere
T: EmbeddedState,
Source§const SIZE_CHECK: () = _
const SIZE_CHECK: () = _
Compile-time assertion that size fits.
Source§impl<T> GpuState for Twhere
T: EmbeddedState,
impl<T> GpuState for Twhere
T: EmbeddedState,
Source§fn from_control_block_bytes(bytes: &[u8]) -> Result<T, RingKernelError>
fn from_control_block_bytes(bytes: &[u8]) -> Result<T, RingKernelError>
Deserialize state from bytes read from GPU.
Source§fn state_version() -> u32
fn state_version() -> u32
State version for compatibility checking.
Source§fn prefer_embedded() -> bool
fn prefer_embedded() -> bool
Whether this state should be embedded (if small enough).
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.