pub trait NvRayTracingExtension: DeviceV1_0 {
    const METADATA: Extension = NV_RAY_TRACING_EXTENSION;

    // Provided methods
    unsafe fn bind_acceleration_structure_memory_nv(
        &self,
        bind_infos: &[impl Cast<Target = BindAccelerationStructureMemoryInfoNV>]
    ) -> VkResult<()> { ... }
    unsafe fn cmd_build_acceleration_structure_nv(
        &self,
        command_buffer: CommandBuffer,
        info: &AccelerationStructureInfoNV,
        instance_data: Buffer,
        instance_offset: DeviceSize,
        update: bool,
        dst: AccelerationStructureNV,
        src: AccelerationStructureNV,
        scratch: Buffer,
        scratch_offset: DeviceSize
    ) { ... }
    unsafe fn cmd_copy_acceleration_structure_nv(
        &self,
        command_buffer: CommandBuffer,
        dst: AccelerationStructureNV,
        src: AccelerationStructureNV,
        mode: CopyAccelerationStructureModeKHR
    ) { ... }
    unsafe fn cmd_trace_rays_nv(
        &self,
        command_buffer: CommandBuffer,
        raygen_shader_binding_table_buffer: Buffer,
        raygen_shader_binding_offset: DeviceSize,
        miss_shader_binding_table_buffer: Buffer,
        miss_shader_binding_offset: DeviceSize,
        miss_shader_binding_stride: DeviceSize,
        hit_shader_binding_table_buffer: Buffer,
        hit_shader_binding_offset: DeviceSize,
        hit_shader_binding_stride: DeviceSize,
        callable_shader_binding_table_buffer: Buffer,
        callable_shader_binding_offset: DeviceSize,
        callable_shader_binding_stride: DeviceSize,
        width: u32,
        height: u32,
        depth: u32
    ) { ... }
    unsafe fn cmd_write_acceleration_structures_properties_nv(
        &self,
        command_buffer: CommandBuffer,
        acceleration_structures: &[AccelerationStructureNV],
        query_type: QueryType,
        query_pool: QueryPool,
        first_query: u32
    ) { ... }
    unsafe fn compile_deferred_nv(
        &self,
        pipeline: Pipeline,
        shader: u32
    ) -> VkResult<()> { ... }
    unsafe fn create_acceleration_structure_nv(
        &self,
        create_info: &AccelerationStructureCreateInfoNV,
        allocator: Option<&AllocationCallbacks>
    ) -> VkResult<AccelerationStructureNV> { ... }
    unsafe fn create_ray_tracing_pipelines_nv(
        &self,
        pipeline_cache: PipelineCache,
        create_infos: &[impl Cast<Target = RayTracingPipelineCreateInfoNV>],
        allocator: Option<&AllocationCallbacks>
    ) -> VkSuccessResult<Vec<Pipeline>> { ... }
    unsafe fn destroy_acceleration_structure_nv(
        &self,
        acceleration_structure: AccelerationStructureNV,
        allocator: Option<&AllocationCallbacks>
    ) { ... }
    unsafe fn get_acceleration_structure_handle_nv(
        &self,
        acceleration_structure: AccelerationStructureNV,
        data: &mut [u8]
    ) -> VkResult<()> { ... }
    unsafe fn get_acceleration_structure_memory_requirements_nv(
        &self,
        info: &AccelerationStructureMemoryRequirementsInfoNV
    ) -> MemoryRequirements2KHR { ... }
    unsafe fn get_ray_tracing_shader_group_handles_nv(
        &self,
        pipeline: Pipeline,
        first_group: u32,
        group_count: u32,
        data: &mut [u8]
    ) -> VkResult<()> { ... }
}
Expand description

Provided Associated Constants§

source

const METADATA: Extension = NV_RAY_TRACING_EXTENSION

The metadata for this extension.

Provided Methods§

source

unsafe fn bind_acceleration_structure_memory_nv( &self, bind_infos: &[impl Cast<Target = BindAccelerationStructureMemoryInfoNV>] ) -> VkResult<()>

source

unsafe fn cmd_build_acceleration_structure_nv( &self, command_buffer: CommandBuffer, info: &AccelerationStructureInfoNV, instance_data: Buffer, instance_offset: DeviceSize, update: bool, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratch_offset: DeviceSize )

source

unsafe fn cmd_copy_acceleration_structure_nv( &self, command_buffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR )

source

unsafe fn cmd_trace_rays_nv( &self, command_buffer: CommandBuffer, raygen_shader_binding_table_buffer: Buffer, raygen_shader_binding_offset: DeviceSize, miss_shader_binding_table_buffer: Buffer, miss_shader_binding_offset: DeviceSize, miss_shader_binding_stride: DeviceSize, hit_shader_binding_table_buffer: Buffer, hit_shader_binding_offset: DeviceSize, hit_shader_binding_stride: DeviceSize, callable_shader_binding_table_buffer: Buffer, callable_shader_binding_offset: DeviceSize, callable_shader_binding_stride: DeviceSize, width: u32, height: u32, depth: u32 )

source

unsafe fn cmd_write_acceleration_structures_properties_nv( &self, command_buffer: CommandBuffer, acceleration_structures: &[AccelerationStructureNV], query_type: QueryType, query_pool: QueryPool, first_query: u32 )

source

unsafe fn compile_deferred_nv( &self, pipeline: Pipeline, shader: u32 ) -> VkResult<()>

source

unsafe fn create_acceleration_structure_nv( &self, create_info: &AccelerationStructureCreateInfoNV, allocator: Option<&AllocationCallbacks> ) -> VkResult<AccelerationStructureNV>

source

unsafe fn create_ray_tracing_pipelines_nv( &self, pipeline_cache: PipelineCache, create_infos: &[impl Cast<Target = RayTracingPipelineCreateInfoNV>], allocator: Option<&AllocationCallbacks> ) -> VkSuccessResult<Vec<Pipeline>>

source

unsafe fn destroy_acceleration_structure_nv( &self, acceleration_structure: AccelerationStructureNV, allocator: Option<&AllocationCallbacks> )

source

unsafe fn get_acceleration_structure_handle_nv( &self, acceleration_structure: AccelerationStructureNV, data: &mut [u8] ) -> VkResult<()>

source

unsafe fn get_acceleration_structure_memory_requirements_nv( &self, info: &AccelerationStructureMemoryRequirementsInfoNV ) -> MemoryRequirements2KHR

source

unsafe fn get_ray_tracing_shader_group_handles_nv( &self, pipeline: Pipeline, first_group: u32, group_count: u32, data: &mut [u8] ) -> VkResult<()>

Object Safety§

This trait is not object safe.

Implementors§