Struct ash::khr::ray_tracing_pipeline::Device
source · pub struct Device {
pub(crate) fp: DeviceFn,
pub(crate) handle: Device,
}
Expand description
VK_KHR_ray_tracing_pipeline device-level functions
Fields§
§fp: DeviceFn
§handle: Device
Implementations§
source§impl Device
impl Device
sourcepub unsafe fn cmd_trace_rays(
&self,
command_buffer: CommandBuffer,
raygen_shader_binding_tables: &StridedDeviceAddressRegionKHR,
miss_shader_binding_tables: &StridedDeviceAddressRegionKHR,
hit_shader_binding_tables: &StridedDeviceAddressRegionKHR,
callable_shader_binding_tables: &StridedDeviceAddressRegionKHR,
width: u32,
height: u32,
depth: u32,
)
pub unsafe fn cmd_trace_rays( &self, command_buffer: CommandBuffer, raygen_shader_binding_tables: &StridedDeviceAddressRegionKHR, miss_shader_binding_tables: &StridedDeviceAddressRegionKHR, hit_shader_binding_tables: &StridedDeviceAddressRegionKHR, callable_shader_binding_tables: &StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32, )
sourcepub unsafe fn create_ray_tracing_pipelines(
&self,
deferred_operation: DeferredOperationKHR,
pipeline_cache: PipelineCache,
create_infos: &[RayTracingPipelineCreateInfoKHR<'_>],
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
) -> Result<Vec<Pipeline>, (Vec<Pipeline>, Result)>
pub unsafe fn create_ray_tracing_pipelines( &self, deferred_operation: DeferredOperationKHR, pipeline_cache: PipelineCache, create_infos: &[RayTracingPipelineCreateInfoKHR<'_>], allocation_callbacks: Option<&AllocationCallbacks<'_>>, ) -> Result<Vec<Pipeline>, (Vec<Pipeline>, Result)>
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_size: usize,
) -> VkResult<Vec<u8>>
pub unsafe fn get_ray_tracing_shader_group_handles( &self, pipeline: Pipeline, first_group: u32, group_count: u32, data_size: usize, ) -> VkResult<Vec<u8>>
sourcepub unsafe fn get_ray_tracing_capture_replay_shader_group_handles(
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data_size: usize,
) -> VkResult<Vec<u8>>
pub unsafe fn get_ray_tracing_capture_replay_shader_group_handles( &self, pipeline: Pipeline, first_group: u32, group_count: u32, data_size: usize, ) -> VkResult<Vec<u8>>
sourcepub unsafe fn cmd_trace_rays_indirect(
&self,
command_buffer: CommandBuffer,
raygen_shader_binding_table: &StridedDeviceAddressRegionKHR,
miss_shader_binding_table: &StridedDeviceAddressRegionKHR,
hit_shader_binding_table: &StridedDeviceAddressRegionKHR,
callable_shader_binding_table: &StridedDeviceAddressRegionKHR,
indirect_device_address: DeviceAddress,
)
pub unsafe fn cmd_trace_rays_indirect( &self, command_buffer: CommandBuffer, raygen_shader_binding_table: &StridedDeviceAddressRegionKHR, miss_shader_binding_table: &StridedDeviceAddressRegionKHR, hit_shader_binding_table: &StridedDeviceAddressRegionKHR, callable_shader_binding_table: &StridedDeviceAddressRegionKHR, indirect_device_address: DeviceAddress, )
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdTraceRaysIndirectKHR.html
indirect_device_address
is a buffer device address which is a pointer to a vk::TraceRaysIndirectCommandKHR
structure containing the trace ray parameters.
sourcepub unsafe fn get_ray_tracing_shader_group_stack_size(
&self,
pipeline: Pipeline,
group: u32,
group_shader: ShaderGroupShaderKHR,
) -> DeviceSize
pub unsafe fn get_ray_tracing_shader_group_stack_size( &self, pipeline: Pipeline, group: u32, group_shader: ShaderGroupShaderKHR, ) -> DeviceSize
sourcepub unsafe fn cmd_set_ray_tracing_pipeline_stack_size(
&self,
command_buffer: CommandBuffer,
pipeline_stack_size: u32,
)
pub unsafe fn cmd_set_ray_tracing_pipeline_stack_size( &self, command_buffer: CommandBuffer, pipeline_stack_size: 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
)