pub struct Wave {
pub threads: Vec<Thread>,
pub pc: u32,
pub active_mask: u64,
pub status: WaveStatus,
pub wave_width: u32,
pub wave_id: u32,
pub control_flow: ControlFlowManager,
/* private fields */
}Fields§
§threads: Vec<Thread>§pc: u32§active_mask: u64§status: WaveStatus§wave_width: u32§wave_id: u32§control_flow: ControlFlowManagerImplementations§
Source§impl Wave
impl Wave
pub fn new( wave_width: u32, register_count: u32, wave_id: u32, workgroup_id: [u32; 3], workgroup_size: [u32; 3], grid_size: [u32; 3], base_thread_index: u32, total_threads_in_workgroup: u32, num_waves: u32, ) -> Self
pub fn is_thread_active(&self, lane: u32) -> bool
pub fn active_thread_count(&self) -> u32
pub fn set_thread_active(&mut self, lane: u32, active: bool)
pub fn push_call(&mut self, return_pc: u32) -> Result<(), &'static str>
pub fn pop_call(&mut self) -> Option<u32>
pub fn call_depth(&self) -> usize
pub fn halt(&mut self)
pub fn suspend(&mut self)
pub fn resume(&mut self)
pub fn is_halted(&self) -> bool
pub fn is_ready(&self) -> bool
pub fn advance_pc(&mut self, bytes: u32)
pub fn set_pc(&mut self, pc: u32)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Wave
impl RefUnwindSafe for Wave
impl Send for Wave
impl Sync for Wave
impl Unpin for Wave
impl UnsafeUnpin for Wave
impl UnwindSafe for Wave
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