Struct ash::nv::ray_tracing::Device
source · pub struct Device {
pub(crate) fp: DeviceFn,
pub(crate) handle: Device,
}
Expand description
VK_NV_ray_tracing device-level functions
Fields§
§fp: DeviceFn
§handle: Device
Implementations§
source§impl Device
impl Device
sourcepub unsafe fn create_acceleration_structure(
&self,
create_info: &AccelerationStructureCreateInfoNV<'_>,
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
) -> VkResult<AccelerationStructureNV>
pub unsafe fn create_acceleration_structure( &self, create_info: &AccelerationStructureCreateInfoNV<'_>, allocation_callbacks: Option<&AllocationCallbacks<'_>>, ) -> VkResult<AccelerationStructureNV>
sourcepub unsafe fn destroy_acceleration_structure(
&self,
accel_struct: AccelerationStructureNV,
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
)
pub unsafe fn destroy_acceleration_structure( &self, accel_struct: AccelerationStructureNV, allocation_callbacks: Option<&AllocationCallbacks<'_>>, )
sourcepub unsafe fn get_acceleration_structure_memory_requirements(
&self,
info: &AccelerationStructureMemoryRequirementsInfoNV<'_>,
) -> MemoryRequirements2KHR<'_>
pub unsafe fn get_acceleration_structure_memory_requirements( &self, info: &AccelerationStructureMemoryRequirementsInfoNV<'_>, ) -> MemoryRequirements2KHR<'_>
sourcepub unsafe fn bind_acceleration_structure_memory(
&self,
bind_info: &[BindAccelerationStructureMemoryInfoNV<'_>],
) -> VkResult<()>
pub unsafe fn bind_acceleration_structure_memory( &self, bind_info: &[BindAccelerationStructureMemoryInfoNV<'_>], ) -> VkResult<()>
sourcepub unsafe fn cmd_build_acceleration_structure(
&self,
command_buffer: CommandBuffer,
info: &AccelerationStructureInfoNV<'_>,
instance_data: Buffer,
instance_offset: DeviceSize,
update: bool,
dst: AccelerationStructureNV,
src: AccelerationStructureNV,
scratch: Buffer,
scratch_offset: DeviceSize,
)
pub unsafe fn cmd_build_acceleration_structure( &self, command_buffer: CommandBuffer, info: &AccelerationStructureInfoNV<'_>, instance_data: Buffer, instance_offset: DeviceSize, update: bool, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratch_offset: DeviceSize, )
sourcepub unsafe fn cmd_copy_acceleration_structure(
&self,
command_buffer: CommandBuffer,
dst: AccelerationStructureNV,
src: AccelerationStructureNV,
mode: CopyAccelerationStructureModeNV,
)
pub unsafe fn cmd_copy_acceleration_structure( &self, command_buffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeNV, )
sourcepub unsafe fn cmd_trace_rays(
&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,
)
pub unsafe fn cmd_trace_rays( &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, )
sourcepub unsafe fn create_ray_tracing_pipelines(
&self,
pipeline_cache: PipelineCache,
create_infos: &[RayTracingPipelineCreateInfoNV<'_>],
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
) -> Result<Vec<Pipeline>, (Vec<Pipeline>, Result)>
pub unsafe fn create_ray_tracing_pipelines( &self, pipeline_cache: PipelineCache, create_infos: &[RayTracingPipelineCreateInfoNV<'_>], allocation_callbacks: Option<&AllocationCallbacks<'_>>, ) -> Result<Vec<Pipeline>, (Vec<Pipeline>, Result)>
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateRayTracingPipelinesNV.html
Pipelines are created and returned as described for Multiple Pipeline Creation.
sourcepub unsafe fn get_ray_tracing_shader_group_handles(
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data: &mut [u8],
) -> VkResult<()>
pub unsafe fn get_ray_tracing_shader_group_handles( &self, pipeline: Pipeline, first_group: u32, group_count: u32, data: &mut [u8], ) -> VkResult<()>
sourcepub unsafe fn get_acceleration_structure_handle(
&self,
accel_struct: AccelerationStructureNV,
) -> VkResult<u64>
pub unsafe fn get_acceleration_structure_handle( &self, accel_struct: AccelerationStructureNV, ) -> VkResult<u64>
sourcepub unsafe fn cmd_write_acceleration_structures_properties(
&self,
command_buffer: CommandBuffer,
structures: &[AccelerationStructureNV],
query_type: QueryType,
query_pool: QueryPool,
first_query: u32,
)
pub unsafe fn cmd_write_acceleration_structures_properties( &self, command_buffer: CommandBuffer, structures: &[AccelerationStructureNV], query_type: QueryType, query_pool: QueryPool, first_query: u32, )
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Device
impl RefUnwindSafe for Device
impl Send for Device
impl Sync for Device
impl Unpin for Device
impl UnwindSafe for Device
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)