Skip to main content

ShaderCache

Struct ShaderCache 

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

Shader compilation cache for JIT-compiled kernels

Caches compiled shaders by query signature to avoid recompilation. Thread-safe via Mutex for concurrent query execution.

Implementations§

Source§

impl ShaderCache

Source

pub fn new() -> Self

Create a new shader cache

Source

pub fn get_or_insert( &self, key: &str, device: &Device, shader_source: &str, ) -> Arc<ShaderModule>

Get cached shader or insert new one

§Arguments
  • key - Query signature (e.g., "filter_gt_1000_sum")
  • device - GPU device for shader compilation
  • shader_source - WGSL shader source code
§Returns

Arc reference to compiled shader module (either cached or newly compiled)

§Panics

Panics if the cache mutex is poisoned (should never happen in normal operation)

Source

pub fn stats(&self) -> (usize, usize)

Get cache statistics

§Panics

Panics if the cache mutex is poisoned (should never happen in normal operation)

Trait Implementations§

Source§

impl Default for ShaderCache

Source§

fn default() -> Self

Returns the “default value” for a type. 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

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