Realm

vk · Functions · E1

10 public declarations with native signatures and source-owned contracts.

FnRustExperimental

Fnvk::end_command_buffer

Contract

End recording a command buffer.

Safety

The command buffer must be in the recording state.

Khronos reference: vkEndCommandBuffer

Fnvk::enumerate_device_extension_properties

pub unsafe fn enumerate_device_extension_properties( instance: &Instance, physical_device: PhysicalDevice, layer_name: Option<&CStr>, ) -> Result<Vec<ExtensionProperties>, CallError>
Enumerate extensions supported by a physical device (optionally filtered by layer).

Contract

Enumerate extensions supported by a physical device (optionally filtered by layer).

Pass layer_name = None to query all extensions from the ICD.

Safety

The instance must be live and physical_device must belong to it.

Khronos reference: vkEnumerateDeviceExtensionProperties

Fnvk::enumerate_device_layer_properties

pub unsafe fn enumerate_device_layer_properties( instance: &Instance, physical_device: PhysicalDevice, ) -> Result<Vec<LayerProperties>, CallError>
Call vkEnumerateDeviceLayerProperties using this context’s cached function pointer.

Contract

Call vkEnumerateDeviceLayerProperties using this context’s cached function pointer.

Errors

Reports a missing command, invalid slice lengths/counts or a native error.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumerateDeviceLayerProperties valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Retries incomplete/growing results with a bounded budget; returns an error if the query does not stabilize. Allocates the returned vector.

Khronos reference: vkEnumerateDeviceLayerProperties

Fnvk::enumerate_physical_device_groups

pub unsafe fn enumerate_physical_device_groups( instance: &Instance, physical_device_group_count: &mut u32, physical_device_group_properties: Option<&mut [PhysicalDeviceGroupProperties<'_>]>, ) -> Result<Result, CallError>
Call vkEnumeratePhysicalDeviceGroups using this context’s cached function pointer.

Contract

Call vkEnumeratePhysicalDeviceGroups using this context’s cached function pointer.

Errors

Reports a missing command, invalid slice lengths/counts or a native error.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumeratePhysicalDeviceGroups valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Pass None to query the count, or Some with fully initialized output records and live, valid output chains. The slice length supplies native capacity; count receives the native number available/written. Some(empty) is a zero- capacity fill, not a count query. No allocation, retry, header reset or chain replacement occurs. Handle INCOMPLETE (result queries) or re-query for growth (void queries) explicitly. Output contents after native errors follow Vulkan.

Khronos reference: vkEnumeratePhysicalDeviceGroups

Fnvk::enumerate_physical_device_groups_khr

pub unsafe fn enumerate_physical_device_groups_khr( instance: &Instance, physical_device_group_count: &mut u32, physical_device_group_properties: Option<&mut [PhysicalDeviceGroupProperties<'_>]>, ) -> Result<Result, CallError>
Call vkEnumeratePhysicalDeviceGroupsKHR using this context’s cached function pointer.

Contract

Call vkEnumeratePhysicalDeviceGroupsKHR using this context’s cached function pointer.

Errors

Reports a missing command, invalid slice lengths/counts or a native error.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumeratePhysicalDeviceGroupsKHR valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Pass None to query the count, or Some with fully initialized output records and live, valid output chains. The slice length supplies native capacity; count receives the native number available/written. Some(empty) is a zero- capacity fill, not a count query. No allocation, retry, header reset or chain replacement occurs. Handle INCOMPLETE (result queries) or re-query for growth (void queries) explicitly. Output contents after native errors follow Vulkan.

Khronos reference: vkEnumeratePhysicalDeviceGroupsKHR

Fnvk::enumerate_physical_device_queue_family_performance_counters_by_region_arm

pub unsafe fn enumerate_physical_device_queue_family_performance_counters_by_region_arm( instance: &Instance, physical_device: PhysicalDevice, queue_family_index: u32, p_counter_count: *mut u32, p_counters: *mut PerformanceCounterARM<'_>, p_counter_descriptions: *mut PerformanceCounterDescriptionARM<'_>, ) -> Result<Result, CallError>
Call vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM using this context’s cached function pointer.

Contract

Call vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM using this context’s cached function pointer.

Errors

Reports a missing command or a negative native VkResult; non-error results are preserved.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Preserves native raw pointers, explicit counts, optional nulls and return values. The caller supplies correctly aligned live storage, initialized output-chain headers and every extent implied by native counts, strides or nested records. No allocation, retry, output initialization, ownership transfer or alias fallback occurs in this wrapper. Outputs, including partial outputs on native failure, remain caller-owned and must be inspected/cleaned up according to Vulkan.

Khronos reference: vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM

Fnvk::enumerate_physical_device_queue_family_performance_query_counters_khr

pub unsafe fn enumerate_physical_device_queue_family_performance_query_counters_khr( instance: &Instance, physical_device: PhysicalDevice, queue_family_index: u32, p_counter_count: *mut u32, p_counters: *mut PerformanceCounterKHR<'_>, p_counter_descriptions: *mut PerformanceCounterDescriptionKHR<'_>, ) -> Result<Result, CallError>
Call vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR using this context’s cached function pointer.

Contract

Call vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR using this context’s cached function pointer.

Errors

Reports a missing command or a negative native VkResult; non-error results are preserved.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Preserves native raw pointers, explicit counts, optional nulls and return values. The caller supplies correctly aligned live storage, initialized output-chain headers and every extent implied by native counts, strides or nested records. No allocation, retry, output initialization, ownership transfer or alias fallback occurs in this wrapper. Outputs, including partial outputs on native failure, remain caller-owned and must be inspected/cleaned up according to Vulkan.

Khronos reference: vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

Fnvk::enumerate_physical_device_shader_instrumentation_metrics_arm

pub unsafe fn enumerate_physical_device_shader_instrumentation_metrics_arm( instance: &Instance, physical_device: PhysicalDevice, p_description_count: *mut u32, p_descriptions: *mut ShaderInstrumentationMetricDescriptionARM<'_>, ) -> Result<Result, CallError>
Call vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM using this context’s cached function pointer.

Contract

Call vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM using this context’s cached function pointer.

Errors

Reports a missing command or a negative native VkResult; non-error results are preserved.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Preserves native raw pointers, explicit counts, optional nulls and return values. The caller supplies correctly aligned live storage, initialized output-chain headers and every extent implied by native counts, strides or nested records. No allocation, retry, output initialization, ownership transfer or alias fallback occurs in this wrapper. Outputs, including partial outputs on native failure, remain caller-owned and must be inspected/cleaned up according to Vulkan.

Khronos reference: vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM

Fnvk::enumerate_physical_devices

Contract

Enumerate physical devices available to this instance.

Safety

The instance must be live and not destroyed.

Khronos reference: vkEnumeratePhysicalDevices

Fnvk::export_metal_objects_ext

pub unsafe fn export_metal_objects_ext( device: &Device, p_metal_objects_info: *mut ExportMetalObjectsInfoEXT<'_>, ) -> Result<(), CallError>
Call vkExportMetalObjectsEXT using this context’s cached function pointer.

Contract

Call vkExportMetalObjectsEXT using this context’s cached function pointer.

Errors

Reports a missing command or a negative native VkResult; non-error results are preserved.

Safety

The context and all handles must be live and belong to the same Vulkan implementation/device. Meet vkExportMetalObjectsEXT valid usage, enabled API/extension/feature, pointer-chain lifetime, callback compatibility and host/GPU synchronization requirements. Native resources require explicit destruction after completion.

Preserves native raw pointers, explicit counts, optional nulls and return values. The caller supplies correctly aligned live storage, initialized output-chain headers and every extent implied by native counts, strides or nested records. No allocation, retry, output initialization, ownership transfer or alias fallback occurs in this wrapper. Outputs, including partial outputs on native failure, remain caller-owned and must be inspected/cleaned up according to Vulkan.

Khronos reference: vkExportMetalObjectsEXT