Lines Matching defs:ptr_instance

84             struct loader_instance *ptr_instance = loader_get_instance(instance);
85 if (ptr_instance != NULL &&
86 loader_check_version_meets_required(loader_combine_version(1, 3, 0), ptr_instance->app_api_version)) {
99 struct loader_instance *ptr_instance = loader_get_instance(instance);
101 if (ptr_instance == NULL) {
110 return trampoline_get_proc_addr(ptr_instance, pName);
491 void loader_add_instance_only_debug_funcs(struct loader_instance *ptr_instance) {
492 VkLayerDbgFunctionNode *cur_node = ptr_instance->current_dbg_function_head;
494 ptr_instance->current_dbg_function_head = ptr_instance->instance_only_dbg_function_head;
497 if (cur_node == ptr_instance->instance_only_dbg_function_head) {
503 cur_node->pNext = ptr_instance->instance_only_dbg_function_head;
512 void loader_remove_instance_only_debug_funcs(struct loader_instance *ptr_instance) {
513 VkLayerDbgFunctionNode *cur_node = ptr_instance->current_dbg_function_head;
516 if (cur_node == ptr_instance->instance_only_dbg_function_head) {
517 ptr_instance->current_dbg_function_head = NULL;
520 if (cur_node->pNext == ptr_instance->instance_only_dbg_function_head) {
530 struct loader_instance *ptr_instance = NULL;
551 ptr_instance =
554 if (ptr_instance == NULL) {
561 ptr_instance->alloc_callbacks = *pAllocator;
563 ptr_instance->magic = LOADER_MAGIC_NUMBER;
567 ptr_instance->app_api_version = LOADER_VERSION_1_0_0;
569 ptr_instance->app_api_version = loader_make_version(pCreateInfo->pApplicationInfo->apiVersion);
577 res = util_CreateDebugUtilsMessengers(ptr_instance, pCreateInfo->pNext, pAllocator);
585 res = util_CreateDebugReportCallbacks(ptr_instance, pCreateInfo->pNext, pAllocator);
591 VkResult settings_file_res = get_loader_settings(ptr_instance, &ptr_instance->settings);
596 if (ptr_instance->settings.settings_active) {
597 log_settings(ptr_instance, &ptr_instance->settings);
602 loader_log(ptr_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
611 ptr_instance->portability_enumeration_flag_bit_set = true;
617 ptr_instance->portability_enumeration_extension_enabled = true;
618 if (ptr_instance->portability_enumeration_flag_bit_set) {
619 ptr_instance->portability_enumeration_enabled = true;
620 loader_log(ptr_instance, VULKAN_LOADER_INFO_BIT, 0,
632 loader_log(ptr_instance, VULKAN_LOADER_WARN_BIT, 0,
639 res = parse_layer_environment_var_filters(ptr_instance, &layer_filters);
647 memset(&ptr_instance->instance_layer_list, 0, sizeof(ptr_instance->instance_layer_list));
648 res = loader_scan_for_layers(ptr_instance, &ptr_instance->instance_layer_list, &layer_filters);
655 res = loader_validate_layers(ptr_instance, pCreateInfo->enabledLayerCount, pCreateInfo->ppEnabledLayerNames,
656 &ptr_instance->instance_layer_list);
664 res = loader_icd_scan(ptr_instance, &ptr_instance->icd_tramp_list, pCreateInfo, &skipped_portability_drivers);
669 if (ptr_instance->icd_tramp_list.count == 0) {
672 if (ptr_instance->portability_enumeration_extension_enabled && !ptr_instance->portability_enumeration_flag_bit_set) {
673 loader_log(ptr_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
678 } else if (ptr_instance->portability_enumeration_flag_bit_set &&
679 !ptr_instance->portability_enumeration_extension_enabled) {
680 loader_log(ptr_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
687 loader_log(ptr_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
694 loader_log(ptr_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0, "vkCreateInstance: Found no drivers!");
700 res = loader_get_icd_loader_instance_extensions(ptr_instance, &ptr_instance->icd_tramp_list, &ptr_instance->ext_list);
704 res = loader_validate_instance_extensions(ptr_instance, &ptr_instance->ext_list, &ptr_instance->instance_layer_list,
710 ptr_instance->disp = loader_instance_heap_alloc(ptr_instance, sizeof(struct loader_instance_dispatch_table),
712 if (ptr_instance->disp == NULL) {
713 loader_log(ptr_instance, VULKAN_LOADER_ERROR_BIT, 0,
718 memcpy(&ptr_instance->disp->layer_inst_disp, &instance_disp, sizeof(instance_disp));
721 ptr_instance->next = loader.instances;
722 loader.instances = ptr_instance;
726 res = loader_enable_instance_layers(ptr_instance, &ici, &ptr_instance->instance_layer_list, &layer_filters);
731 created_instance = (VkInstance)ptr_instance;
732 res = loader_create_instance_chain(&ici, pAllocator, ptr_instance, &created_instance);
741 wsi_create_instance(ptr_instance, &ici);
742 check_for_enabled_debug_extensions(ptr_instance, &ici);
743 extensions_create_instance(ptr_instance, &ici);
745 *pInstance = (VkInstance)ptr_instance;
751 loader_activate_instance_layer_extensions(ptr_instance, created_instance);
752 ptr_instance->instance_finished_creation = true;
753 } else if (VK_ERROR_EXTENSION_NOT_PRESENT == res && !ptr_instance->create_terminator_invalid_extension) {
754 loader_log(ptr_instance, VULKAN_LOADER_WARN_BIT, 0,
760 if (NULL != ptr_instance) {
764 if (loader.instances == ptr_instance) {
765 loader.instances = ptr_instance->next;
769 free_loader_settings(ptr_instance, &ptr_instance->settings);
771 loader_instance_heap_free(ptr_instance, ptr_instance->disp);
773 destroy_debug_callbacks_chain(ptr_instance, pAllocator);
775 loader_destroy_pointer_layer_list(ptr_instance, &ptr_instance->expanded_activated_layer_list);
776 loader_destroy_pointer_layer_list(ptr_instance, &ptr_instance->app_activated_layer_list);
778 loader_delete_layer_list_and_properties(ptr_instance, &ptr_instance->instance_layer_list);
779 loader_scanned_icd_clear(ptr_instance, &ptr_instance->icd_tramp_list);
780 loader_destroy_generic_list(ptr_instance, (struct loader_generic_list *)&ptr_instance->ext_list);
786 while (NULL != ptr_instance->icd_terms) {
787 icd_term = ptr_instance->icd_terms;
794 ptr_instance->icd_terms = icd_term->next;
795 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
798 free_string_list(ptr_instance, &ptr_instance->enabled_layer_names);
800 loader_instance_heap_free(ptr_instance, ptr_instance);
803 loader_remove_instance_only_debug_funcs(ptr_instance);
805 // Only unlock when ptr_instance isn't NULL, as if it is, the above code didn't make it to when loader_lock was locked.
814 struct loader_instance *ptr_instance = NULL;
821 ptr_instance = loader_get_instance(instance);
822 if (ptr_instance == NULL) {
830 ptr_instance->alloc_callbacks = *pAllocator;
834 destroy_debug_callbacks_chain(ptr_instance, pAllocator);
837 loader_add_instance_only_debug_funcs(ptr_instance);
840 disp->DestroyInstance(ptr_instance->instance, pAllocator);
842 free_loader_settings(ptr_instance, &ptr_instance->settings);
844 loader_destroy_pointer_layer_list(ptr_instance, &ptr_instance->expanded_activated_layer_list);
845 loader_destroy_pointer_layer_list(ptr_instance, &ptr_instance->app_activated_layer_list);
847 loader_delete_layer_list_and_properties(ptr_instance, &ptr_instance->instance_layer_list);
849 free_string_list(ptr_instance, &ptr_instance->enabled_layer_names);
851 if (ptr_instance->phys_devs_tramp) {
852 for (uint32_t i = 0; i < ptr_instance->phys_dev_count_tramp; i++) {
853 loader_instance_heap_free(ptr_instance, ptr_instance->phys_devs_tramp[i]);
855 loader_instance_heap_free(ptr_instance, ptr_instance->phys_devs_tramp);
859 destroy_debug_callbacks_chain(ptr_instance, pAllocator);
861 loader_instance_heap_free(ptr_instance, ptr_instance->disp);
862 loader_instance_heap_free(ptr_instance, ptr_instance);