|
Monado OpenXR Runtime
|
Helper functions for Vulkan extension handling during initialization. More...

Functions | |
| static struct u_extension_list * | build_extension_list (struct vk_bundle *vk, struct u_extension_list *available_ext_list, struct u_extension_list *required_ext_list, struct u_extension_list *optional_ext_list, vk_should_skip_ext_func_t skip_func, struct u_extension_list **out_skipped_ext_list) |
| struct u_extension_list * | vk_convert_extension_properties_to_string_list (VkExtensionProperties *props, uint32_t prop_count) |
| Convert VkExtensionProperties array to u_extension_list. More... | |
| void | vk_log_extension_list (struct vk_bundle *vk, struct u_extension_list *ext_list, struct u_extension_list *optional_ext_list, struct u_extension_list *skipped_ext_list, const char *ext_type_name, enum u_logging_level log_level) |
| Log an extension list using pretty printing. More... | |
| VkResult | vk_check_required_extensions (struct vk_bundle *vk, struct u_extension_list *available_ext_list, struct u_extension_list *required_ext_list, const char *ext_type_name) |
| Check if all required extensions are present in the available extensions list. More... | |
| VkResult | vk_build_instance_extensions_with_skip (struct vk_bundle *vk, struct u_extension_list *required_instance_ext_list, struct u_extension_list *optional_instance_ext_list, vk_should_skip_ext_func_t skip_func, struct u_extension_list **out_instance_ext_list) |
| Build instance extensions from required and optional instance extensions with skip callback. More... | |
| VkResult | vk_build_device_extensions_with_skip (struct vk_bundle *vk, VkPhysicalDevice physical_device, struct u_extension_list *required_device_ext_list, struct u_extension_list *optional_device_ext_list, vk_should_skip_ext_func_t skip_func, struct u_extension_list **out_device_ext_list) |
| Build device extensions from required and optional device extensions with skip callback. More... | |
Helper functions for Vulkan extension handling during initialization.
| VkResult vk_build_device_extensions_with_skip | ( | struct vk_bundle * | vk, |
| VkPhysicalDevice | physical_device, | ||
| struct u_extension_list * | required_device_ext_list, | ||
| struct u_extension_list * | optional_device_ext_list, | ||
| vk_should_skip_ext_func_t | skip_func, | ||
| struct u_extension_list ** | out_device_ext_list | ||
| ) |
Build device extensions from required and optional device extensions with skip callback.
This function enumerates available device extensions, checks required ones, and builds a final list. Returns VK_SUCCESS if successful.
This internal function, typically called from vk_create_device().
| skip_func | Callback to determine if an optional extension should be skipped, must not be NULL. |
References u_extension_list::u_extension_list_destroy(), vk_check_required_extensions(), VK_CHK_AND_RET, vk_convert_extension_properties_to_string_list(), and vk_enumerate_physical_device_extension_properties().
| VkResult vk_build_instance_extensions_with_skip | ( | struct vk_bundle * | vk, |
| struct u_extension_list * | required_instance_ext_list, | ||
| struct u_extension_list * | optional_instance_ext_list, | ||
| vk_should_skip_ext_func_t | skip_func, | ||
| struct u_extension_list ** | out_instance_ext_list | ||
| ) |
Build instance extensions from required and optional instance extensions with skip callback.
This function enumerates available instance extensions, checks required ones, and builds a final list. Returns VK_SUCCESS if successful. Only requires vk_get_loader_functions to have been called.
This internal function, use vk_build_instance_extensions() instead.
| skip_func | Callback to determine if an optional extension should be skipped, must not be NULL. |
References u_extension_list::u_extension_list_destroy(), vk_check_required_extensions(), VK_CHK_AND_RET, vk_convert_extension_properties_to_string_list(), and vk_enumerate_instance_extensions_properties().
Referenced by vk_build_instance_extensions().
| VkResult vk_check_required_extensions | ( | struct vk_bundle * | vk, |
| struct u_extension_list * | available_ext_list, | ||
| struct u_extension_list * | required_ext_list, | ||
| const char * | ext_type_name | ||
| ) |
Check if all required extensions are present in the available extensions list.
Prints a clear error message with all missing extensions if not all required extensions are available. Returns VK_SUCCESS if all required extensions are available, VK_ERROR_EXTENSION_NOT_PRESENT otherwise.
Referenced by vk_build_device_extensions_with_skip(), vk_build_instance_extensions_with_skip(), and vk_check_required_instance_extensions().
| struct u_extension_list * vk_convert_extension_properties_to_string_list | ( | VkExtensionProperties * | props, |
| uint32_t | prop_count | ||
| ) |
Convert VkExtensionProperties array to u_extension_list.
References u_extension_list_builder::u_extension_list_builder_append_unique(), u_extension_list_builder::u_extension_list_builder_build_sorted_for_extensions(), and u_extension_list_builder::u_extension_list_builder_create_with_capacity().
Referenced by vk_build_device_extensions_with_skip(), vk_build_instance_extensions_with_skip(), and vk_check_required_instance_extensions().
| void vk_log_extension_list | ( | struct vk_bundle * | vk, |
| struct u_extension_list * | ext_list, | ||
| struct u_extension_list * | optional_ext_list, | ||
| struct u_extension_list * | skipped_ext_list, | ||
| const char * | ext_type_name, | ||
| enum u_logging_level | log_level | ||
| ) |
Log an extension list using pretty printing.
The list will be sorted and logged at the specified log level. The argument skipped_ext_list is used to distinguish between skipped and unsupported extensions (must not be NULL).