pub struct Instance {
pub ash: Arc<Instance>,
/* private fields */
}Expand description
The logical Vulkan instance.
The instance contains the ash library entry, instance, and any associated debugging information. Within the scope of this library, the Instance is expected to outlive all other Vulkan resources e.g. it should only be dropped once all other resources have been destroyed or dropped.
Fields§
§ash: Arc<Instance>Implementations§
Methods from Deref<Target = Instance>§
pub fn handle(&self) -> Instance
pub fn fp_v1_3(&self) -> &InstanceFnV1_3
sourcepub unsafe fn get_physical_device_tool_properties_len(
&self,
physical_device: PhysicalDevice,
) -> Result<usize, Result>
pub unsafe fn get_physical_device_tool_properties_len( &self, physical_device: PhysicalDevice, ) -> Result<usize, Result>
Retrieve the number of elements to pass to get_physical_device_tool_properties()
sourcepub unsafe fn get_physical_device_tool_properties(
&self,
physical_device: PhysicalDevice,
out: &mut [PhysicalDeviceToolProperties<'_>],
) -> Result<(), Result>
pub unsafe fn get_physical_device_tool_properties( &self, physical_device: PhysicalDevice, out: &mut [PhysicalDeviceToolProperties<'_>], ) -> Result<(), Result>
Call get_physical_device_tool_properties_len() to query the number of elements to pass to out.
Be sure to Default::default()-initialize these elements and optionally set their p_next pointer.
pub fn fp_v1_1(&self) -> &InstanceFnV1_1
sourcepub unsafe fn enumerate_physical_device_groups_len(
&self,
) -> Result<usize, Result>
pub unsafe fn enumerate_physical_device_groups_len( &self, ) -> Result<usize, Result>
Retrieve the number of elements to pass to enumerate_physical_device_groups()
sourcepub unsafe fn enumerate_physical_device_groups(
&self,
out: &mut [PhysicalDeviceGroupProperties<'_>],
) -> Result<(), Result>
pub unsafe fn enumerate_physical_device_groups( &self, out: &mut [PhysicalDeviceGroupProperties<'_>], ) -> Result<(), Result>
Call enumerate_physical_device_groups_len() to query the number of elements to pass to out.
Be sure to Default::default()-initialize these elements and optionally set their p_next pointer.
sourcepub unsafe fn get_physical_device_features2(
&self,
physical_device: PhysicalDevice,
features: &mut PhysicalDeviceFeatures2<'_>,
)
pub unsafe fn get_physical_device_features2( &self, physical_device: PhysicalDevice, features: &mut PhysicalDeviceFeatures2<'_>, )
sourcepub unsafe fn get_physical_device_properties2(
&self,
physical_device: PhysicalDevice,
prop: &mut PhysicalDeviceProperties2<'_>,
)
pub unsafe fn get_physical_device_properties2( &self, physical_device: PhysicalDevice, prop: &mut PhysicalDeviceProperties2<'_>, )
sourcepub unsafe fn get_physical_device_format_properties2(
&self,
physical_device: PhysicalDevice,
format: Format,
out: &mut FormatProperties2<'_>,
)
pub unsafe fn get_physical_device_format_properties2( &self, physical_device: PhysicalDevice, format: Format, out: &mut FormatProperties2<'_>, )
sourcepub unsafe fn get_physical_device_image_format_properties2(
&self,
physical_device: PhysicalDevice,
format_info: &PhysicalDeviceImageFormatInfo2<'_>,
image_format_prop: &mut ImageFormatProperties2<'_>,
) -> Result<(), Result>
pub unsafe fn get_physical_device_image_format_properties2( &self, physical_device: PhysicalDevice, format_info: &PhysicalDeviceImageFormatInfo2<'_>, image_format_prop: &mut ImageFormatProperties2<'_>, ) -> Result<(), Result>
sourcepub unsafe fn get_physical_device_queue_family_properties2_len(
&self,
physical_device: PhysicalDevice,
) -> usize
pub unsafe fn get_physical_device_queue_family_properties2_len( &self, physical_device: PhysicalDevice, ) -> usize
Retrieve the number of elements to pass to get_physical_device_queue_family_properties2()
sourcepub unsafe fn get_physical_device_queue_family_properties2(
&self,
physical_device: PhysicalDevice,
out: &mut [QueueFamilyProperties2<'_>],
)
pub unsafe fn get_physical_device_queue_family_properties2( &self, physical_device: PhysicalDevice, out: &mut [QueueFamilyProperties2<'_>], )
Call get_physical_device_queue_family_properties2_len() to query the number of elements to pass to out.
Be sure to Default::default()-initialize these elements and optionally set their p_next pointer.
sourcepub unsafe fn get_physical_device_memory_properties2(
&self,
physical_device: PhysicalDevice,
out: &mut PhysicalDeviceMemoryProperties2<'_>,
)
pub unsafe fn get_physical_device_memory_properties2( &self, physical_device: PhysicalDevice, out: &mut PhysicalDeviceMemoryProperties2<'_>, )
sourcepub unsafe fn get_physical_device_sparse_image_format_properties2_len(
&self,
physical_device: PhysicalDevice,
format_info: &PhysicalDeviceSparseImageFormatInfo2<'_>,
) -> usize
pub unsafe fn get_physical_device_sparse_image_format_properties2_len( &self, physical_device: PhysicalDevice, format_info: &PhysicalDeviceSparseImageFormatInfo2<'_>, ) -> usize
Retrieve the number of elements to pass to get_physical_device_sparse_image_format_properties2()
sourcepub unsafe fn get_physical_device_sparse_image_format_properties2(
&self,
physical_device: PhysicalDevice,
format_info: &PhysicalDeviceSparseImageFormatInfo2<'_>,
out: &mut [SparseImageFormatProperties2<'_>],
)
pub unsafe fn get_physical_device_sparse_image_format_properties2( &self, physical_device: PhysicalDevice, format_info: &PhysicalDeviceSparseImageFormatInfo2<'_>, out: &mut [SparseImageFormatProperties2<'_>], )
Call get_physical_device_sparse_image_format_properties2_len() to query the number of elements to pass to out.
Be sure to Default::default()-initialize these elements and optionally set their p_next pointer.
sourcepub unsafe fn get_physical_device_external_buffer_properties(
&self,
physical_device: PhysicalDevice,
external_buffer_info: &PhysicalDeviceExternalBufferInfo<'_>,
out: &mut ExternalBufferProperties<'_>,
)
pub unsafe fn get_physical_device_external_buffer_properties( &self, physical_device: PhysicalDevice, external_buffer_info: &PhysicalDeviceExternalBufferInfo<'_>, out: &mut ExternalBufferProperties<'_>, )
sourcepub unsafe fn get_physical_device_external_fence_properties(
&self,
physical_device: PhysicalDevice,
external_fence_info: &PhysicalDeviceExternalFenceInfo<'_>,
out: &mut ExternalFenceProperties<'_>,
)
pub unsafe fn get_physical_device_external_fence_properties( &self, physical_device: PhysicalDevice, external_fence_info: &PhysicalDeviceExternalFenceInfo<'_>, out: &mut ExternalFenceProperties<'_>, )
sourcepub unsafe fn get_physical_device_external_semaphore_properties(
&self,
physical_device: PhysicalDevice,
external_semaphore_info: &PhysicalDeviceExternalSemaphoreInfo<'_>,
out: &mut ExternalSemaphoreProperties<'_>,
)
pub unsafe fn get_physical_device_external_semaphore_properties( &self, physical_device: PhysicalDevice, external_semaphore_info: &PhysicalDeviceExternalSemaphoreInfo<'_>, out: &mut ExternalSemaphoreProperties<'_>, )
pub fn fp_v1_0(&self) -> &InstanceFnV1_0
sourcepub unsafe fn create_device(
&self,
physical_device: PhysicalDevice,
create_info: &DeviceCreateInfo<'_>,
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
) -> Result<Device, Result>
pub unsafe fn create_device( &self, physical_device: PhysicalDevice, create_info: &DeviceCreateInfo<'_>, allocation_callbacks: Option<&AllocationCallbacks<'_>>, ) -> Result<Device, Result>
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCreateDevice.html
§Safety
There is a parent/child relation between Instance and the resulting Device. The
application must not destroy the parent Instance object
before first destroying the returned Device child object.
Device does not implement drop semantics and can only be destroyed via
destroy_device().
See the [Entry::create_instance()] documentation for more destruction ordering rules on
Instance.
sourcepub unsafe fn get_device_proc_addr(
&self,
device: Device,
p_name: *const i8,
) -> Option<unsafe extern "system" fn()>
pub unsafe fn get_device_proc_addr( &self, device: Device, p_name: *const i8, ) -> Option<unsafe extern "system" fn()>
sourcepub unsafe fn destroy_instance(
&self,
allocation_callbacks: Option<&AllocationCallbacks<'_>>,
)
pub unsafe fn destroy_instance( &self, allocation_callbacks: Option<&AllocationCallbacks<'_>>, )
sourcepub unsafe fn get_physical_device_format_properties(
&self,
physical_device: PhysicalDevice,
format: Format,
) -> FormatProperties
pub unsafe fn get_physical_device_format_properties( &self, physical_device: PhysicalDevice, format: Format, ) -> FormatProperties
sourcepub unsafe fn get_physical_device_image_format_properties(
&self,
physical_device: PhysicalDevice,
format: Format,
typ: ImageType,
tiling: ImageTiling,
usage: ImageUsageFlags,
flags: ImageCreateFlags,
) -> Result<ImageFormatProperties, Result>
pub unsafe fn get_physical_device_image_format_properties( &self, physical_device: PhysicalDevice, format: Format, typ: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, ) -> Result<ImageFormatProperties, Result>
sourcepub unsafe fn get_physical_device_memory_properties(
&self,
physical_device: PhysicalDevice,
) -> PhysicalDeviceMemoryProperties
pub unsafe fn get_physical_device_memory_properties( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceMemoryProperties
sourcepub unsafe fn get_physical_device_properties(
&self,
physical_device: PhysicalDevice,
) -> PhysicalDeviceProperties
pub unsafe fn get_physical_device_properties( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceProperties
sourcepub unsafe fn get_physical_device_queue_family_properties(
&self,
physical_device: PhysicalDevice,
) -> Vec<QueueFamilyProperties>
pub unsafe fn get_physical_device_queue_family_properties( &self, physical_device: PhysicalDevice, ) -> Vec<QueueFamilyProperties>
sourcepub unsafe fn get_physical_device_features(
&self,
physical_device: PhysicalDevice,
) -> PhysicalDeviceFeatures
pub unsafe fn get_physical_device_features( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceFeatures
sourcepub unsafe fn enumerate_physical_devices(
&self,
) -> Result<Vec<PhysicalDevice>, Result>
pub unsafe fn enumerate_physical_devices( &self, ) -> Result<Vec<PhysicalDevice>, Result>
sourcepub unsafe fn enumerate_device_extension_properties(
&self,
device: PhysicalDevice,
) -> Result<Vec<ExtensionProperties>, Result>
pub unsafe fn enumerate_device_extension_properties( &self, device: PhysicalDevice, ) -> Result<Vec<ExtensionProperties>, Result>
sourcepub unsafe fn enumerate_device_layer_properties(
&self,
device: PhysicalDevice,
) -> Result<Vec<LayerProperties>, Result>
pub unsafe fn enumerate_device_layer_properties( &self, device: PhysicalDevice, ) -> Result<Vec<LayerProperties>, Result>
sourcepub unsafe fn get_physical_device_sparse_image_format_properties(
&self,
physical_device: PhysicalDevice,
format: Format,
typ: ImageType,
samples: SampleCountFlags,
usage: ImageUsageFlags,
tiling: ImageTiling,
) -> Vec<SparseImageFormatProperties>
pub unsafe fn get_physical_device_sparse_image_format_properties( &self, physical_device: PhysicalDevice, format: Format, typ: ImageType, samples: SampleCountFlags, usage: ImageUsageFlags, tiling: ImageTiling, ) -> Vec<SparseImageFormatProperties>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Instance
impl RefUnwindSafe for Instance
impl Send for Instance
impl Sync for Instance
impl Unpin for Instance
impl UnwindSafe for Instance
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
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.