Struct demo_vk::graphics::vulkan::Instance

source ·
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§

source§

impl Instance

source

pub fn for_window(app_name: impl AsRef<str>, window: &Window) -> Result<Self>

Create a new Vulkan instance for the given GLFW window.

source

pub fn new(app_name: impl AsRef<str>, extensions: &[String]) -> Result<Self>

Create a new Vulkan instance.

Methods from Deref<Target = Instance>§

source

pub fn handle(&self) -> Instance

source

pub fn fp_v1_3(&self) -> &InstanceFnV1_3

source

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()

source

pub unsafe fn get_physical_device_tool_properties( &self, physical_device: PhysicalDevice, out: &mut [PhysicalDeviceToolProperties<'_>], ) -> Result<(), Result>

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceToolProperties.html

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.

source

pub fn fp_v1_1(&self) -> &InstanceFnV1_1

source

pub unsafe fn enumerate_physical_device_groups_len( &self, ) -> Result<usize, Result>

Retrieve the number of elements to pass to enumerate_physical_device_groups()

source

pub unsafe fn enumerate_physical_device_groups( &self, out: &mut [PhysicalDeviceGroupProperties<'_>], ) -> Result<(), Result>

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkEnumeratePhysicalDeviceGroups.html

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.

source

pub unsafe fn get_physical_device_features2( &self, physical_device: PhysicalDevice, features: &mut PhysicalDeviceFeatures2<'_>, )

source

pub unsafe fn get_physical_device_properties2( &self, physical_device: PhysicalDevice, prop: &mut PhysicalDeviceProperties2<'_>, )

source

pub unsafe fn get_physical_device_format_properties2( &self, physical_device: PhysicalDevice, format: Format, out: &mut FormatProperties2<'_>, )

source

pub unsafe fn get_physical_device_image_format_properties2( &self, physical_device: PhysicalDevice, format_info: &PhysicalDeviceImageFormatInfo2<'_>, image_format_prop: &mut ImageFormatProperties2<'_>, ) -> Result<(), Result>

source

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()

source

pub unsafe fn get_physical_device_queue_family_properties2( &self, physical_device: PhysicalDevice, out: &mut [QueueFamilyProperties2<'_>], )

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html

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.

source

pub unsafe fn get_physical_device_memory_properties2( &self, physical_device: PhysicalDevice, out: &mut PhysicalDeviceMemoryProperties2<'_>, )

source

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()

source

pub unsafe fn get_physical_device_sparse_image_format_properties2( &self, physical_device: PhysicalDevice, format_info: &PhysicalDeviceSparseImageFormatInfo2<'_>, out: &mut [SparseImageFormatProperties2<'_>], )

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html

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.

source

pub unsafe fn get_physical_device_external_buffer_properties( &self, physical_device: PhysicalDevice, external_buffer_info: &PhysicalDeviceExternalBufferInfo<'_>, out: &mut ExternalBufferProperties<'_>, )

source

pub unsafe fn get_physical_device_external_fence_properties( &self, physical_device: PhysicalDevice, external_fence_info: &PhysicalDeviceExternalFenceInfo<'_>, out: &mut ExternalFenceProperties<'_>, )

source

pub unsafe fn get_physical_device_external_semaphore_properties( &self, physical_device: PhysicalDevice, external_semaphore_info: &PhysicalDeviceExternalSemaphoreInfo<'_>, out: &mut ExternalSemaphoreProperties<'_>, )

source

pub fn fp_v1_0(&self) -> &InstanceFnV1_0

source

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.

source

pub unsafe fn get_device_proc_addr( &self, device: Device, p_name: *const i8, ) -> Option<unsafe extern "system" fn()>

source

pub unsafe fn destroy_instance( &self, allocation_callbacks: Option<&AllocationCallbacks<'_>>, )

source

pub unsafe fn get_physical_device_format_properties( &self, physical_device: PhysicalDevice, format: Format, ) -> FormatProperties

source

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>

source

pub unsafe fn get_physical_device_memory_properties( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceMemoryProperties

source

pub unsafe fn get_physical_device_properties( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceProperties

source

pub unsafe fn get_physical_device_queue_family_properties( &self, physical_device: PhysicalDevice, ) -> Vec<QueueFamilyProperties>

source

pub unsafe fn get_physical_device_features( &self, physical_device: PhysicalDevice, ) -> PhysicalDeviceFeatures

source

pub unsafe fn enumerate_physical_devices( &self, ) -> Result<Vec<PhysicalDevice>, Result>

source

pub unsafe fn enumerate_device_extension_properties( &self, device: PhysicalDevice, ) -> Result<Vec<ExtensionProperties>, Result>

source

pub unsafe fn enumerate_device_layer_properties( &self, device: PhysicalDevice, ) -> Result<Vec<LayerProperties>, Result>

source

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§

source§

impl Debug for Instance

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Instance

source§

type Target = Instance

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.