Skip to main content

RayQueryDevice

Trait RayQueryDevice 

Source
pub trait RayQueryDevice: Device {
    // Provided methods
    fn ray_query_limits(&self) -> Result<RayQueryLimits, GpuError> { ... }
    fn create_blas(&self, desc: &BlasDesc<'_>) -> Result<Self::Blas, GpuError> { ... }
    fn create_tlas(&self, desc: &TlasDesc) -> Result<Self::Tlas, GpuError> { ... }
    fn set_tlas_instance(
        &self,
        tlas: &mut Self::Tlas,
        index: u32,
        instance: Option<TlasInstance<'_, Self>>,
    ) -> Result<(), GpuError> { ... }
    fn create_ray_query_bind_group_layout(
        &self,
        desc: &RayQueryBindGroupLayoutDesc<'_>,
    ) -> Result<Self::BindGroupLayout, GpuError> { ... }
    fn create_ray_query_bind_group(
        &self,
        desc: &RayQueryBindGroupDesc<'_, Self>,
    ) -> Result<Self::BindGroup, GpuError> { ... }
}
Expand description

Device extension for hardware acceleration structures and WGSL ray queries.

Implementations must return GpuError::Capability when the opened device did not negotiate the ray-query feature. Keeping this separate from Device lets portable mocks and browser-only backends remain minimal.

Provided Methods§

Source

fn ray_query_limits(&self) -> Result<RayQueryLimits, GpuError>

Returns negotiated acceleration-structure ceilings.

§Errors

Returns a capability error when ray queries were not negotiated.

Source

fn create_blas(&self, desc: &BlasDesc<'_>) -> Result<Self::Blas, GpuError>

Allocates a BLAS with fixed geometry ceilings.

§Errors

Returns capability, size or backend allocation failures.

Source

fn create_tlas(&self, desc: &TlasDesc) -> Result<Self::Tlas, GpuError>

Allocates a TLAS with a fixed instance ceiling.

§Errors

Returns capability, size or backend allocation failures.

Source

fn set_tlas_instance( &self, tlas: &mut Self::Tlas, index: u32, instance: Option<TlasInstance<'_, Self>>, ) -> Result<(), GpuError>

Replaces or clears one TLAS instance without exposing backend types.

§Errors

Returns a capability error or an out-of-range instance failure.

Source

fn create_ray_query_bind_group_layout( &self, desc: &RayQueryBindGroupLayoutDesc<'_>, ) -> Result<Self::BindGroupLayout, GpuError>

Creates a layout containing acceleration-structure slots.

§Errors

Returns a capability or backend layout failure.

Source

fn create_ray_query_bind_group( &self, desc: &RayQueryBindGroupDesc<'_, Self>, ) -> Result<Self::BindGroup, GpuError>

Creates a bind group containing TLAS resources.

§Errors

Returns a capability or backend binding failure.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§