Skip to main content

GpuSimThread

Struct GpuSimThread 

Source
pub struct GpuSimThread { /* private fields */ }
Expand description

Handle on a running GPU simulation, driven by the same commands as a SimThread.

Implementations§

Source§

impl GpuSimThread

Source

pub fn new( ctx: GpuContext, state: Box<dyn GpuSimState>, settings: GpuBatchSettings, wake: Option<WakeFn>, ) -> Self

Starts a paused runner over state on ctx, in the batch mode that settings specifies.

A panic out of the loop is stored in ctx.faults.

Source

pub fn send(&mut self, cmd: SimCommand)

Sends a command to the loop.

Source

pub fn take_snapshot(&mut self) -> Option<Snapshot>

Takes the latest snapshot, or None when nothing new has been published since the last take.

Source

pub fn play(&mut self)

Source

pub fn pause(&mut self)

Source

pub fn step_once(&mut self)

Source

pub fn set_schedule(&mut self, schedule: Schedule)

Source

pub fn run_to(&mut self, tick: u64)

Source

pub fn set_batch_size(&mut self, batch_size: u32)

Sets the manual batch size used in fixed mode. It has no visible effect while adaptive mode is on, and is kept for when it is turned back off.

Source

pub fn set_adaptive(&mut self, enabled: bool)

Turns adaptive batching on or off. Fixed mode’s manual batch size and adaptive mode’s target are each preserved independently across toggles.

Source

pub fn set_target_ms(&mut self, target_ms: f64)

Sets the per-batch wall-clock budget (ms) used by the adaptive controller.

Source

pub fn gpu_stats(&self) -> GpuStats

Latest GPU-runner numbers.

Source

pub fn update(&mut self, dt: f64)

Advances the sim when the driver runs inside the frame loop, and does nothing when the driver has its own thread.

Trait Implementations§

Source§

impl Debug for GpuSimThread

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for GpuSimThread

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WasmNotSync for T
where T: Sync,