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§
Sourcefn ray_query_limits(&self) -> Result<RayQueryLimits, GpuError>
fn ray_query_limits(&self) -> Result<RayQueryLimits, GpuError>
Returns negotiated acceleration-structure ceilings.
§Errors
Returns a capability error when ray queries were not negotiated.
Sourcefn create_blas(&self, desc: &BlasDesc<'_>) -> Result<Self::Blas, GpuError>
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.
Sourcefn create_tlas(&self, desc: &TlasDesc) -> Result<Self::Tlas, GpuError>
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.
Sourcefn set_tlas_instance(
&self,
tlas: &mut Self::Tlas,
index: u32,
instance: Option<TlasInstance<'_, Self>>,
) -> Result<(), GpuError>
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.
Sourcefn create_ray_query_bind_group_layout(
&self,
desc: &RayQueryBindGroupLayoutDesc<'_>,
) -> Result<Self::BindGroupLayout, GpuError>
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.
Sourcefn create_ray_query_bind_group(
&self,
desc: &RayQueryBindGroupDesc<'_, Self>,
) -> Result<Self::BindGroup, GpuError>
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".