Lines Matching refs:icd_term
212 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, NULL);
214 if (NULL == icd_term || NULL == dev) {
1242 for (struct loader_icd_term *icd_term = inst->icd_terms; icd_term; icd_term = icd_term->next) {
1243 for (struct loader_device *dev = icd_term->logical_device_list; dev; dev = dev->next) {
1252 return icd_term;
1287 void loader_add_logical_device(struct loader_icd_term *icd_term, struct loader_device *dev) {
1288 dev->next = icd_term->logical_device_list;
1289 icd_term->logical_device_list = dev;
1292 void loader_remove_logical_device(struct loader_icd_term *icd_term, struct loader_device *found_dev,
1296 if (!icd_term || !found_dev) return;
1299 dev = icd_term->logical_device_list;
1308 icd_term->logical_device_list = found_dev->next;
1312 void loader_icd_destroy(struct loader_instance *ptr_inst, struct loader_icd_term *icd_term,
1315 for (struct loader_device *dev = icd_term->logical_device_list; dev;) {
1321 loader_instance_heap_free(ptr_inst, icd_term);
1325 struct loader_icd_term *icd_term;
1327 icd_term = loader_instance_heap_calloc(ptr_inst, sizeof(struct loader_icd_term), VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
1328 if (!icd_term) {
1332 icd_term->scanned_icd = scanned_icd;
1333 icd_term->this_instance = ptr_inst;
1336 icd_term->next = ptr_inst->icd_terms;
1337 ptr_inst->icd_terms = icd_term;
1340 return icd_term;
4098 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, NULL);
4125 if (icd_term == NULL) {
4129 return icd_term->dispatch.GetDeviceProcAddr(device, pName);
4437 // Find the icd_term this device belongs to then remove it from that icd_term.
4439 // the device here since it may not have been added to the icd_term and there
4441 struct loader_icd_term *icd_term = inst->icd_terms;
4443 while (!found && NULL != icd_term) {
4444 struct loader_device *cur_dev = icd_term->logical_device_list;
4448 if (cur_dev == icd_term->logical_device_list) {
4449 icd_term->logical_device_list = cur_dev->next;
4460 icd_term = icd_term->next;
4481 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, NULL);
4487 loader_remove_logical_device(icd_term, dev, pAllocator);
5287 struct loader_icd_term *icd_term;
5351 icd_term = loader_icd_add(ptr_instance, &ptr_instance->icd_tramp_list.scanned_list[i]);
5352 if (NULL == icd_term) {
5375 ptr_instance->icd_terms = icd_term->next;
5376 icd_term->next = NULL;
5377 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
5381 res = loader_add_instance_extensions(ptr_instance, icd_term->scanned_icd->EnumerateInstanceExtensionProperties,
5382 icd_term->scanned_icd->lib_name, &icd_exts);
5390 ptr_instance->icd_terms = icd_term->next;
5391 icd_term->next = NULL;
5392 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
5409 (VK_API_VERSION_MAJOR(icd_term->scanned_icd->api_version) == 1 &&
5410 VK_API_VERSION_MINOR(icd_term->scanned_icd->api_version) == 0)) {
5424 if (icd_term->scanned_icd->api_version >= VK_API_VERSION_1_1) {
5425 icd_term->supports_get_dev_prop_2 = true;
5429 icd_term->supports_get_dev_prop_2 = true;
5440 if (icd_term->scanned_icd->api_version >= VK_API_VERSION_1_1) {
5442 (PFN_vkEnumerateInstanceVersion)icd_term->scanned_icd->GetInstanceProcAddr(NULL, "vkEnumerateInstanceVersion");
5450 icd_term->scanned_icd->lib_name);
5455 icd_term->scanned_icd->lib_name);
5461 icd_term->scanned_icd->lib_name);
5499 ptr_instance->icd_tramp_list.scanned_list[i].CreateInstance(&icd_create_info, pAllocator, &(icd_term->instance));
5508 icd_result, icd_term->scanned_icd->lib_name);
5509 ptr_instance->icd_terms = icd_term->next;
5510 icd_term->next = NULL;
5511 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
5515 if (!loader_icd_init_entries(ptr_instance, icd_term)) {
5518 icd_term->scanned_icd->lib_name);
5519 ptr_instance->icd_terms = icd_term->next;
5520 icd_term->next = NULL;
5521 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
5528 NULL != icd_term->dispatch.CreateXlibSurfaceKHR ||
5531 NULL != icd_term->dispatch.CreateXcbSurfaceKHR ||
5534 NULL != icd_term->dispatch.CreateWaylandSurfaceKHR ||
5537 NULL != icd_term->dispatch.CreateAndroidSurfaceKHR ||
5540 NULL != icd_term->dispatch.CreateSurfaceOHOS ||
5543 NULL != icd_term->dispatch.CreateWin32SurfaceKHR ||
5545 NULL != icd_term->dispatch.DestroySurfaceKHR)) {
5561 icd_term = ptr_instance->icd_terms;
5562 while (icd_term != NULL) {
5563 if (icd_term->supports_get_dev_prop_2) {
5567 icd_term = icd_term->next;
5592 icd_term = ptr_instance->icd_terms;
5593 ptr_instance->icd_terms = icd_term->next;
5594 if (NULL != icd_term->instance) {
5595 icd_term->dispatch.DestroyInstance(icd_term->instance, pAllocator);
5597 loader_icd_destroy(ptr_instance, icd_term, pAllocator);
5684 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5687 PFN_vkCreateDevice fpCreateDevice = icd_term->dispatch.CreateDevice;
5694 loader_log(icd_term->this_instance, VULKAN_LOADER_WARN_BIT, 0,
5698 loader_log(icd_term->this_instance, VULKAN_LOADER_WARN_BIT, 0,
5710 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
5711 "terminator_CreateDevice: No vkCreateDevice command exposed by ICD %s", icd_term->scanned_icd->lib_name);
5726 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
5740 res = loader_init_generic_list(icd_term->this_instance, (struct loader_generic_list *)&icd_exts, sizeof(VkExtensionProperties));
5745 res = loader_add_device_extensions(icd_term->this_instance, icd_term->dispatch.EnumerateDeviceExtensionProperties,
5746 phys_dev_term->phys_dev, icd_term->scanned_icd->lib_name, &icd_exts);
5758 loader_log(icd_term->this_instance, VULKAN_LOADER_DEBUG_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
5760 icd_term->scanned_icd->lib_name);
5767 // if (icd_term->this_instance->enabled_known_extensions.khr_device_group_creation == 1) {
5815 // if (icd_term->dispatch.GetPhysicalDeviceFeatures2 == NULL && icd_term->dispatch.GetPhysicalDeviceFeatures2KHR == NULL) {
5823 if (icd_term->dispatch.GetPhysicalDeviceFeatures2 == NULL &&
5824 icd_term->dispatch.GetPhysicalDeviceFeatures2KHR == NULL) {
5825 loader_log(icd_term->this_instance, VULKAN_LOADER_INFO_BIT, 0,
5827 icd_term->scanned_icd->lib_name);
5830 if (icd_term->this_instance->enabled_known_extensions.khr_get_physical_device_properties2) {
5844 if (icd_term->dispatch.EnumeratePhysicalDeviceGroups == NULL &&
5845 icd_term->dispatch.EnumeratePhysicalDeviceGroupsKHR == NULL) {
5846 loader_log(icd_term->this_instance, VULKAN_LOADER_INFO_BIT, 0,
5849 icd_term->scanned_icd->lib_name);
5853 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
5921 dev->layer_extensions.ext_debug_utils_enabled = icd_term->this_instance->enabled_known_extensions.ext_debug_utils;
5922 dev->driver_extensions.ext_debug_utils_enabled = icd_term->this_instance->enabled_known_extensions.ext_debug_utils;
5925 icd_term->dispatch.GetPhysicalDeviceProperties(phys_dev_term->phys_dev, &properties);
5932 loader_log(icd_term->this_instance, VULKAN_LOADER_LAYER_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
5933 " Using \"%s\" with driver: \"%s\"", properties.deviceName, icd_term->scanned_icd->lib_name);
5937 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_DRIVER_BIT, 0,
5938 "terminator_CreateDevice: Failed in ICD %s vkCreateDevice call", icd_term->scanned_icd->lib_name);
5943 loader_add_logical_device(icd_term, dev);
5950 loader_destroy_generic_list(icd_term->this_instance, (struct loader_generic_list *)&icd_exts);
6203 new_phys_devs[idx]->this_icd_term = dev_array->icd_term;
6218 * They also need to be setup - the icd_term, icd_index, phys_dev, and disp (dispatch table) all need the correct data.
6225 struct loader_icd_term *icd_term;
6259 icd_term = inst->icd_terms;
6260 while (NULL != icd_term) {
6261 res = icd_term->dispatch.EnumeratePhysicalDevices(icd_term->instance, &icd_phys_dev_array[icd_idx].device_count, NULL);
6279 res = icd_term->dispatch.EnumeratePhysicalDevices(icd_term->instance, &(icd_phys_dev_array[icd_idx].device_count),
6284 icd_phys_dev_array[icd_idx].icd_term = icd_term;
6286 icd_term = icd_term->next;
6587 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6590 icd_term->dispatch.EnumerateDeviceExtensionProperties(phys_dev_term->phys_dev, NULL, &written_count, pProperties);
6598 for (uint32_t i = 0; i < icd_term->this_instance->expanded_activated_layer_list.count; i++) {
6599 struct loader_layer_properties *layer_props = icd_term->this_instance->expanded_activated_layer_list.list[i];
6625 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6630 res = icd_term->dispatch.EnumerateDeviceExtensionProperties(phys_dev_term->phys_dev, NULL, &all_exts.count, NULL);
6637 all_exts.list = loader_instance_heap_alloc(icd_term->this_instance, all_exts.capacity, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND);
6644 res = icd_term->dispatch.EnumerateDeviceExtensionProperties(phys_dev_term->phys_dev, NULL, &all_exts.count, all_exts.list);
6650 for (uint32_t i = 0; i < icd_term->this_instance->expanded_activated_layer_list.count; i++) {
6651 struct loader_layer_properties *layer_props = icd_term->this_instance->expanded_activated_layer_list.list[i];
6655 res = loader_add_to_ext_list(icd_term->this_instance, &all_exts, 1, &layer_ext_list->list[j].props);
6669 loader_destroy_generic_list(icd_term->this_instance, (struct loader_generic_list *)&all_exts);
6888 struct loader_icd_term *icd_term;
6899 icd_term = inst->icd_terms;
6900 for (uint32_t icd_idx = 0; NULL != icd_term; icd_term = icd_term->next, icd_idx++) {
6905 fpEnumeratePhysicalDeviceGroups = icd_term->dispatch.EnumeratePhysicalDeviceGroupsKHR;
6907 fpEnumeratePhysicalDeviceGroups = icd_term->dispatch.EnumeratePhysicalDeviceGroups;
6912 res = icd_term->dispatch.EnumeratePhysicalDevices(icd_term->instance, &cur_icd_group_count, NULL);
6922 res = fpEnumeratePhysicalDeviceGroups(icd_term->instance, &cur_icd_group_count, NULL);
6970 icd_term = inst->icd_terms;
6971 for (uint8_t icd_idx = 0; NULL != icd_term; icd_term = icd_term->next, icd_idx++) {
6976 fpEnumeratePhysicalDeviceGroups = icd_term->dispatch.EnumeratePhysicalDeviceGroupsKHR;
6978 fpEnumeratePhysicalDeviceGroups = icd_term->dispatch.EnumeratePhysicalDeviceGroups;
6982 icd_term->dispatch.EnumeratePhysicalDevices(icd_term->instance, &count_this_time, NULL);
6994 res = icd_term->dispatch.EnumeratePhysicalDevices(icd_term->instance, &count_this_time, phys_dev_array);
7006 local_phys_dev_groups[cur_index].this_icd_term = icd_term;
7013 res = fpEnumeratePhysicalDeviceGroups(icd_term->instance, &count_this_time, NULL);
7025 res = fpEnumeratePhysicalDeviceGroups(icd_term->instance, &count_this_time,
7037 local_phys_dev_groups[cur_index].this_icd_term = icd_term;
7057 res = fpEnumeratePhysicalDeviceGroups(icd_term->instance, &count_this_time, tmp_group_props);
7068 local_phys_dev_groups[cur_index].this_icd_term = icd_term;