Struct asche::Device [−][src]
A Vulkan device.
Handles all resource creation, swapchain and framebuffer handling. Command buffer and queue handling are handled by the Queue
.
Fields
device_type: PhysicalDeviceType
The type of the physical device.
resizable_bar_support: BarSupport
Shows if the device support access to the device memory using the base address register.
Implementations
impl Device
[src]
pub fn create_render_pass(
&self,
name: &str,
renderpass_info: RenderPassCreateInfo2Builder<'_>
) -> Result<RenderPass, AscheError>
[src]
&self,
name: &str,
renderpass_info: RenderPassCreateInfo2Builder<'_>
) -> Result<RenderPass, AscheError>
Creates a new render pass.
pub fn create_pipeline_layout(
&self,
name: &str,
pipeline_layout_info: PipelineLayoutCreateInfoBuilder<'_>
) -> Result<PipelineLayout, AscheError>
[src]
&self,
name: &str,
pipeline_layout_info: PipelineLayoutCreateInfoBuilder<'_>
) -> Result<PipelineLayout, AscheError>
Creates a new pipeline layout.
pub fn create_graphics_pipeline(
&self,
name: &str,
pipeline_info: GraphicsPipelineCreateInfoBuilder<'_>
) -> Result<GraphicsPipeline, AscheError>
[src]
&self,
name: &str,
pipeline_info: GraphicsPipelineCreateInfoBuilder<'_>
) -> Result<GraphicsPipeline, AscheError>
Creates a new graphics pipeline.
pub fn create_raytracing_pipeline(
&self,
name: &str,
deferred_operation: Option<DeferredOperationKHR>,
pipeline_info: RayTracingPipelineCreateInfoKHRBuilder<'_>
) -> Result<RayTracingPipeline, AscheError>
[src]
&self,
name: &str,
deferred_operation: Option<DeferredOperationKHR>,
pipeline_info: RayTracingPipelineCreateInfoKHRBuilder<'_>
) -> Result<RayTracingPipeline, AscheError>
Creates a new raytracing pipeline.
pub fn create_compute_pipeline(
&self,
name: &str,
pipeline_info: ComputePipelineCreateInfoBuilder<'_>
) -> Result<ComputePipeline, AscheError>
[src]
&self,
name: &str,
pipeline_info: ComputePipelineCreateInfoBuilder<'_>
) -> Result<ComputePipeline, AscheError>
Creates a new compute pipeline.
pub fn create_descriptor_pool(
&self,
descriptor: &DescriptorPoolDescriptor<'_>
) -> Result<DescriptorPool, AscheError>
[src]
&self,
descriptor: &DescriptorPoolDescriptor<'_>
) -> Result<DescriptorPool, AscheError>
Creates a descriptor pool.
pub fn create_descriptor_set_layout(
&self,
name: &str,
layout_info: DescriptorSetLayoutCreateInfoBuilder<'_>
) -> Result<DescriptorSetLayout, AscheError>
[src]
&self,
name: &str,
layout_info: DescriptorSetLayoutCreateInfoBuilder<'_>
) -> Result<DescriptorSetLayout, AscheError>
Creates a descriptor set layout.
pub fn create_shader_module(
&self,
name: &str,
shader_data: &[u8]
) -> Result<ShaderModule, AscheError>
[src]
&self,
name: &str,
shader_data: &[u8]
) -> Result<ShaderModule, AscheError>
Creates a new shader module using the provided SPIR-V code.
pub fn create_buffer(
&self,
descriptor: &BufferDescriptor<'_>
) -> Result<Buffer, AscheError>
[src]
&self,
descriptor: &BufferDescriptor<'_>
) -> Result<Buffer, AscheError>
Creates a new buffer.
pub fn create_buffer_view(
&self,
descriptor: &BufferViewDescriptor<'_>
) -> Result<BufferView, AscheError>
[src]
&self,
descriptor: &BufferViewDescriptor<'_>
) -> Result<BufferView, AscheError>
Creates a new buffer view.
pub fn create_image(
&self,
descriptor: &ImageDescriptor<'_>
) -> Result<Image, AscheError>
[src]
&self,
descriptor: &ImageDescriptor<'_>
) -> Result<Image, AscheError>
Creates a new image.
pub fn create_image_view(
&self,
descriptor: &ImageViewDescriptor<'_>
) -> Result<ImageView, AscheError>
[src]
&self,
descriptor: &ImageViewDescriptor<'_>
) -> Result<ImageView, AscheError>
Creates a new image.
pub fn create_sampler(
&self,
descriptor: &SamplerDescriptor<'_>
) -> Result<Sampler, AscheError>
[src]
&self,
descriptor: &SamplerDescriptor<'_>
) -> Result<Sampler, AscheError>
Creates a sampler.
pub fn create_timeline_semaphore(
&self,
name: &str,
initial_value: u64
) -> Result<TimelineSemaphore, AscheError>
[src]
&self,
name: &str,
initial_value: u64
) -> Result<TimelineSemaphore, AscheError>
Creates a new timeline semaphore.
pub fn create_query_pool(
&self,
name: &str,
query_pool_info: QueryPoolCreateInfoBuilder<'_>
) -> Result<QueryPool, AscheError>
[src]
&self,
name: &str,
query_pool_info: QueryPoolCreateInfoBuilder<'_>
) -> Result<QueryPool, AscheError>
Creates a new query pool.
pub fn flush_mapped_memory(
&self,
allocation: &Allocation
) -> Result<(), AscheError>
[src]
&self,
allocation: &Allocation
) -> Result<(), AscheError>
Flush mapped memory. Used for CPU->GPU transfers.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkFlushMappedMemoryRanges.html
pub fn invalidate_mapped_memory(
&self,
allocation: &Allocation
) -> Result<(), AscheError>
[src]
&self,
allocation: &Allocation
) -> Result<(), AscheError>
Invalidate mapped memory. Used for GPU->CPU transfers.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkInvalidateMappedMemoryRanges.html
pub fn ray_tracing_capture_replay_shader_group_handles(
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data: &[u8]
) -> Result<(), AscheError>
[src]
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data: &[u8]
) -> Result<(), AscheError>
Query ray tracing capture replay pipeline shader group handles.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html
pub fn ray_tracing_shader_group_handles(
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data: &[u8]
) -> Result<(), AscheError>
[src]
&self,
pipeline: Pipeline,
first_group: u32,
group_count: u32,
data: &[u8]
) -> Result<(), AscheError>
Query ray tracing pipeline shader group handles.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingShaderGroupHandlesKHR.html
pub fn ray_tracing_shader_group_stack_size(
&self,
pipeline: Pipeline,
group: u32,
group_shader: ShaderGroupShaderKHR
) -> u64
[src]
&self,
pipeline: Pipeline,
group: u32,
group_shader: ShaderGroupShaderKHR
) -> u64
Query ray tracing pipeline shader group shader stack size.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingShaderGroupStackSizeKHR.html
pub fn physical_device_properties(
&self,
properties: PhysicalDeviceProperties2Builder<'_>
) -> PhysicalDeviceProperties2
[src]
&self,
properties: PhysicalDeviceProperties2Builder<'_>
) -> PhysicalDeviceProperties2
Returns properties of a physical device.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceProperties2.html
pub fn create_deferred_operation(
&self,
name: &str
) -> Result<DeferredOperation, AscheError>
[src]
&self,
name: &str
) -> Result<DeferredOperation, AscheError>
Create a deferred operation handle.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDeferredOperationKHR.html
pub fn build_acceleration_structures(
&self,
infos: &[AccelerationStructureBuildGeometryInfoKHRBuilder<'_>],
build_range_infos: &[AccelerationStructureBuildRangeInfoKHR]
) -> Result<(), AscheError>
[src]
&self,
infos: &[AccelerationStructureBuildGeometryInfoKHRBuilder<'_>],
build_range_infos: &[AccelerationStructureBuildRangeInfoKHR]
) -> Result<(), AscheError>
Build an acceleration structure on the host.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBuildAccelerationStructuresKHR.html
pub fn create_acceleration_structure(
&self,
name: &str,
create_info: &AccelerationStructureCreateInfoKHR
) -> Result<AccelerationStructure, AscheError>
[src]
&self,
name: &str,
create_info: &AccelerationStructureCreateInfoKHR
) -> Result<AccelerationStructure, AscheError>
Create a new acceleration structure object.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateAccelerationStructureKHR.html
pub fn acceleration_structure_build_sizes(
&self,
build_type: AccelerationStructureBuildTypeKHR,
build_info: &AccelerationStructureBuildGeometryInfoKHR,
max_primitive_counts: &[u32]
) -> AccelerationStructureBuildSizesInfoKHR
[src]
&self,
build_type: AccelerationStructureBuildTypeKHR,
build_info: &AccelerationStructureBuildGeometryInfoKHR,
max_primitive_counts: &[u32]
) -> AccelerationStructureBuildSizesInfoKHR
Retrieve the required size for an acceleration structure.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureBuildSizesKHR.html
pub fn device_acceleration_structure_compatibility(
&self,
version_info: &AccelerationStructureVersionInfoKHR,
compatibility: Option<AccelerationStructureCompatibilityKHR>
) -> AccelerationStructureCompatibilityKHR
[src]
&self,
version_info: &AccelerationStructureVersionInfoKHR,
compatibility: Option<AccelerationStructureCompatibilityKHR>
) -> AccelerationStructureCompatibilityKHR
Check if a serialized acceleration structure is compatible with the current device.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceAccelerationStructureCompatibilityKHR.html
pub fn copy_acceleration_structure(
&self,
info: &CopyAccelerationStructureInfoKHRBuilder<'_>
) -> Result<(), AscheError>
[src]
&self,
info: &CopyAccelerationStructureInfoKHRBuilder<'_>
) -> Result<(), AscheError>
Copy an acceleration structure on the host.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyAccelerationStructureKHR.html
pub fn copy_acceleration_structure_to_memory(
&self,
info: &CopyAccelerationStructureToMemoryInfoKHR
) -> Result<(), AscheError>
[src]
&self,
info: &CopyAccelerationStructureToMemoryInfoKHR
) -> Result<(), AscheError>
Serialize an acceleration structure on the host.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyAccelerationStructureToMemoryKHR.html
pub fn copy_memory_to_acceleration_structure(
&self,
info: &CopyMemoryToAccelerationStructureInfoKHR
) -> Result<(), AscheError>
[src]
&self,
info: &CopyMemoryToAccelerationStructureInfoKHR
) -> Result<(), AscheError>
Deserialize an acceleration structure on the host.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyMemoryToAccelerationStructureKHR.html
pub fn update_descriptor_sets(
&self,
descriptor_writes: &[WriteDescriptorSetBuilder<'_>],
descriptor_copies: &[CopyDescriptorSetBuilder<'_>]
)
[src]
&self,
descriptor_writes: &[WriteDescriptorSetBuilder<'_>],
descriptor_copies: &[CopyDescriptorSetBuilder<'_>]
)
Update the contents of a descriptor set object.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUpdateDescriptorSets.html
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Device
impl Send for Device
impl Sync for Device
impl Unpin for Device
impl UnwindSafe for Device
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,