Struct asche::Device[][src]

pub struct Device {
    pub device_type: PhysicalDeviceType,
    pub resizable_bar_support: BarSupport,
    // some fields omitted
}

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]

Creates a new render pass.

pub fn create_pipeline_layout(
    &self,
    name: &str,
    pipeline_layout_info: PipelineLayoutCreateInfoBuilder<'_>
) -> Result<PipelineLayout, AscheError>
[src]

Creates a new pipeline layout.

pub fn create_graphics_pipeline(
    &self,
    name: &str,
    pipeline_info: GraphicsPipelineCreateInfoBuilder<'_>
) -> Result<GraphicsPipeline, AscheError>
[src]

Creates a new graphics pipeline.

pub fn create_raytracing_pipeline(
    &self,
    name: &str,
    deferred_operation: Option<DeferredOperationKHR>,
    pipeline_info: RayTracingPipelineCreateInfoKHRBuilder<'_>
) -> Result<RayTracingPipeline, AscheError>
[src]

Creates a new raytracing pipeline.

pub fn create_compute_pipeline(
    &self,
    name: &str,
    pipeline_info: ComputePipelineCreateInfoBuilder<'_>
) -> Result<ComputePipeline, AscheError>
[src]

Creates a new compute pipeline.

pub fn create_descriptor_pool(
    &self,
    descriptor: &DescriptorPoolDescriptor<'_>
) -> Result<DescriptorPool, AscheError>
[src]

Creates a descriptor pool.

pub fn create_descriptor_set_layout(
    &self,
    name: &str,
    layout_info: DescriptorSetLayoutCreateInfoBuilder<'_>
) -> Result<DescriptorSetLayout, AscheError>
[src]

Creates a descriptor set layout.

pub fn create_shader_module(
    &self,
    name: &str,
    shader_data: &[u8]
) -> Result<ShaderModule, AscheError>
[src]

Creates a new shader module using the provided SPIR-V code.

pub fn create_buffer(
    &self,
    descriptor: &BufferDescriptor<'_>
) -> Result<Buffer, AscheError>
[src]

Creates a new buffer.

pub fn create_buffer_view(
    &self,
    descriptor: &BufferViewDescriptor<'_>
) -> Result<BufferView, AscheError>
[src]

Creates a new buffer view.

pub fn create_image(
    &self,
    descriptor: &ImageDescriptor<'_>
) -> Result<Image, AscheError>
[src]

Creates a new image.

pub fn create_image_view(
    &self,
    descriptor: &ImageViewDescriptor<'_>
) -> Result<ImageView, AscheError>
[src]

Creates a new image.

pub fn create_sampler(
    &self,
    descriptor: &SamplerDescriptor<'_>
) -> Result<Sampler, AscheError>
[src]

Creates a sampler.

pub fn create_timeline_semaphore(
    &self,
    name: &str,
    initial_value: u64
) -> Result<TimelineSemaphore, AscheError>
[src]

Creates a new timeline semaphore.

pub fn create_query_pool(
    &self,
    name: &str,
    query_pool_info: QueryPoolCreateInfoBuilder<'_>
) -> Result<QueryPool, AscheError>
[src]

Creates a new query pool.

pub fn flush_mapped_memory(
    &self,
    allocation: &Allocation
) -> Result<(), AscheError>
[src]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

Update the contents of a descriptor set object.

https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUpdateDescriptorSets.html

Trait Implementations

impl Debug for Device[src]

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]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.