Lines Matching refs:group
136 // NOTE: This assumes that devices in each group have already been sorted.
137 // The group sort criteria is simple:
141 // 4) Ties broken by group device 0 device_ID XOR vendor_ID comparison
146 // Use the first GPU's info from each group to sort the groups by
354 for (uint32_t group = 0; group < group_count; ++group) {
355 loader_log(inst, VULKAN_LOADER_INFO_BIT | VULKAN_LOADER_DRIVER_BIT, 0, " Group %u", group);
357 struct loader_icd_term *icd_term = sorted_group_term[group].this_icd_term;
358 for (uint32_t gpu = 0; gpu < sorted_group_term[group].group_props.physicalDeviceCount; ++gpu) {
361 sorted_group_term[group].internal_device_info[gpu].physical_device =
362 sorted_group_term[group].group_props.physicalDevices[gpu];
363 sorted_group_term[group].internal_device_info[gpu].has_pci_bus_info = false;
365 icd_term->dispatch.GetPhysicalDeviceProperties(sorted_group_term[group].internal_device_info[gpu].physical_device,
367 sorted_group_term[group].internal_device_info[gpu].device_type = dev_props.deviceType;
368 strncpy(sorted_group_term[group].internal_device_info[gpu].device_name, dev_props.deviceName,
370 sorted_group_term[group].internal_device_info[gpu].vendor_id = dev_props.vendorID;
371 sorted_group_term[group].internal_device_info[gpu].device_id = dev_props.deviceID;
375 if (!sorted_group_term[group].internal_device_info[gpu].has_pci_bus_info) {
378 sorted_group_term[group].internal_device_info[gpu].physical_device, NULL, &ext_count, NULL);
386 sorted_group_term[group].internal_device_info[gpu].physical_device, NULL, &ext_count, ext_props);
389 sorted_group_term[group].internal_device_info[gpu].has_pci_bus_info = true;
396 if (sorted_group_term[group].internal_device_info[gpu].has_pci_bus_info) {
409 GetPhysDevProps2(sorted_group_term[group].internal_device_info[gpu].physical_device, &dev_props2);
410 sorted_group_term[group].internal_device_info[gpu].pci_domain = pci_props.pciDomain;
411 sorted_group_term[group].internal_device_info[gpu].pci_bus = pci_props.pciBus;
412 sorted_group_term[group].internal_device_info[gpu].pci_device = pci_props.pciDevice;
413 sorted_group_term[group].internal_device_info[gpu].pci_function = pci_props.pciFunction;
415 sorted_group_term[group].internal_device_info[gpu].has_pci_bus_info = false;
419 sorted_group_term[group].internal_device_info[gpu].device_name);
423 linux_env_var_default_device(inst, sorted_group_term[group].group_props.physicalDeviceCount,
424 sorted_group_term[group].internal_device_info);
426 // Sort GPUs in each group
427 qsort(sorted_group_term[group].internal_device_info, sorted_group_term[group].group_props.physicalDeviceCount,
430 // Match the externally used physical device list with the sorted physical device list for this group.
431 for (uint32_t dev = 0; dev < sorted_group_term[group].group_props.physicalDeviceCount; ++dev) {
432 sorted_group_term[group].group_props.physicalDevices[dev] =
433 sorted_group_term[group].internal_device_info[dev].physical_device;
441 for (uint32_t group = 0; group < group_count; ++group) {
442 loader_log(inst, VULKAN_LOADER_INFO_BIT | VULKAN_LOADER_DRIVER_BIT, 0, " Group %u", group);
443 for (uint32_t gpu = 0; gpu < sorted_group_term[group].group_props.physicalDeviceCount; ++gpu) {
445 sorted_group_term[group].internal_device_info[gpu].device_name,
446 sorted_group_term[group].internal_device_info[gpu].physical_device,
447 (sorted_group_term[group].internal_device_info[gpu].default_device ? "[default]" : ""));