|
Monado OpenXR Runtime
|
Functions to init various parts of the vk_bundle. More...
#include "util/u_pretty_print.h"#include "vk/vk_helpers.h"#include "vk/vk_extensions_helpers.h"#include "vk/vk_queue_builder.h"#include "vk/vk_queue_family.h"#include <stdio.h>#include "vk_bundle_init_instance_ext.c.inc"#include "vk_bundle_init_device_ext.c.inc"
Macros | |
| #define | CHECK(feature, DEV_FEATURE) device_features->feature = optional_device_features->feature && (DEV_FEATURE) |
Functions | |
| static bool | should_skip_optional_instance_ext (struct vk_bundle *vk, struct u_extension_list *required_instance_ext_list, struct u_extension_list *optional_instance_ext_list, const char *ext) |
| static bool | should_skip_optional_device_ext (struct vk_bundle *vk, struct u_extension_list *required_device_ext_list, struct u_extension_list *optional_device_ext_list, const char *ext) |
| VkResult | vk_build_instance_extensions (struct vk_bundle *vk, struct u_extension_list *required_instance_ext_list, struct u_extension_list *optional_instance_ext_list, struct u_extension_list **out_instance_ext_list) |
| Build instance extensions from required and optional instance extensions. | |
| VkResult | vk_check_required_instance_extensions (struct vk_bundle *vk, struct u_extension_list *required_instance_ext_list) |
| Check if the required instance extensions are supported, if not print error message with all extensions missing, returns VK_ERROR_EXTENSION_NOT_PRESENT if not all extensions are supported. | |
| void | vk_fill_in_has_instance_extensions (struct vk_bundle *vk, struct u_extension_list *ext_list) |
| Fills in has_* in vk_bundle given a string of prefiltered instance extensions. | |
| static void | fill_in_device_features (struct vk_bundle *vk, const uint32_t queue_family_index) |
| static void | get_external_image_support (struct vk_bundle *vk, bool depth, VkExternalMemoryHandleTypeFlagBits handle_type, bool *out_importable, bool *out_exportable) |
| static bool | is_fence_bit_supported (struct vk_bundle *vk, VkExternalFenceHandleTypeFlagBits handle_type) |
| static void | get_binary_semaphore_bit_support (struct vk_bundle *vk, VkExternalSemaphoreHandleTypeFlagBits handle_type, bool *out_importable, bool *out_exportable) |
| static bool | is_binary_semaphore_bit_supported (struct vk_bundle *vk, VkExternalSemaphoreHandleTypeFlagBits handle_type) |
| static void | get_timeline_semaphore_bit_support (struct vk_bundle *vk, VkExternalSemaphoreHandleTypeFlagBits handle_type, bool *out_importable, bool *out_exportable) |
| static bool | is_timeline_semaphore_bit_supported (struct vk_bundle *vk, VkExternalSemaphoreHandleTypeFlagBits handle_type) |
| static void | fill_in_external_object_properties (struct vk_bundle *vk) |
| static int | device_type_priority (VkPhysicalDeviceType device_type) |
| static bool | device_is_preferred (VkPhysicalDeviceProperties *l_device, VkPhysicalDeviceProperties *r_device) |
| static void | device_debug_print (struct vk_bundle *vk, const VkPhysicalDeviceProperties *pdp, uint32_t index) |
| static uint32_t | select_preferred_device (struct vk_bundle *vk, VkPhysicalDevice *devices, uint32_t device_count) |
| static VkResult | select_physical_device (struct vk_bundle *vk, int forced_index) |
| static void | fill_in_has_device_extensions (struct vk_bundle *vk, struct u_extension_list *ext_list) |
| static void | filter_device_features (struct vk_bundle *vk, VkPhysicalDevice physical_device, const struct vk_device_features *optional_device_features, struct vk_device_features *device_features) |
Sets fields in device_features to true if and only if they are available and they are true in optional_device_features (indicating a desire for that feature) | |
| static void | vk_reset_queues (struct vk_bundle *vk) |
| static struct vk_bundle_queue * | vk_insert_get_queue (struct vk_bundle *vk, const struct vk_queue_pair *new_queue) |
| VkResult | vk_select_physical_device (struct vk_bundle *vk, int forced_index) |
| Setup the physical device, this is called by vk_create_device but has uses for outside of that. | |
| XRT_CHECK_RESULT VkResult | vk_create_device (struct vk_bundle *vk, int forced_index, bool only_compute, VkQueueGlobalPriorityEXT global_priority, struct u_extension_list *required_device_ext_list, struct u_extension_list *optional_device_ext_list, const struct vk_device_features *optional_device_features) |
| Creates a VkDevice and initialises the VkQueue. | |
| VkResult | vk_init_mutex (struct vk_bundle *vk) |
| Initialize mutexes in the vk_bundle. | |
| VkResult | vk_deinit_mutex (struct vk_bundle *vk) |
| De-initialize mutexes in the vk_bundle. | |
| XRT_CHECK_RESULT VkResult | vk_init_from_given (struct vk_bundle *vk, PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr, VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, uint32_t queue_family_index, uint32_t queue_index, bool external_fence_fd_enabled, bool external_semaphore_fd_enabled, bool timeline_semaphore_enabled, bool image_format_list_enabled, bool debug_utils_enabled, enum u_logging_level log_level) |
| Initialize a bundle with objects given to us by client code, used by client_vk_compositor in Compositor client code. | |
Functions to init various parts of the vk_bundle.
Note that some functionality in this file is generated by the script src/xrt/auxiliary/vk/vk_generate_inc_files.py. The generated parts are included via .c.inc files.
|
static |
Sets fields in device_features to true if and only if they are available and they are true in optional_device_features (indicating a desire for that feature)
| vk | self | |
| physical_device | The physical device to query | |
| [in] | optional_device_features | The features to request if available |
| [out] | device_features | Populated with the subset of optional_device_features that are actually available. |
Referenced by vk_create_device().
| void vk_fill_in_has_instance_extensions | ( | struct vk_bundle * | vk, |
| struct u_extension_list * | ext_list | ||
| ) |
Fills in has_* in vk_bundle given a string of prefiltered instance extensions.