| 1419 | } |
| 1420 | |
| 1421 | void RunPrinter(Printer &p, ParsedResults parse_data, AppInstance &instance, std::vector<std::unique_ptr<AppGpu>> &gpus, |
| 1422 | std::vector<std::unique_ptr<AppSurface>> &surfaces) { |
| 1423 | #ifdef VK_USE_PLATFORM_IOS_MVK |
| 1424 | p.SetAlwaysOpenDetails(true); |
| 1425 | #endif |
| 1426 | if (parse_data.output_category == OutputCategory::summary) { |
| 1427 | DumpSummaryInstance(p, instance); |
| 1428 | p.SetHeader(); |
| 1429 | ObjectWrapper obj(p, "Devices"); |
| 1430 | IndentWrapper indent(p); |
| 1431 | for (auto &gpu : gpus) { |
| 1432 | DumpSummaryGPU(p, *(gpu.get())); |
| 1433 | } |
| 1434 | } else if (parse_data.output_category == OutputCategory::profile_json) { |
| 1435 | DumpGpuProfileCapabilities(p, *(gpus.at(parse_data.selected_gpu).get()), parse_data.show.promoted_structs); |
| 1436 | DumpGpuProfileInfo(p, *(gpus.at(parse_data.selected_gpu).get())); |
| 1437 | } else { |
| 1438 | // text, html, vkconfig_output |
| 1439 | p.SetHeader(); |
| 1440 | DumpExtensions(p, "Instance Extensions", instance.global_extensions); |
| 1441 | p.AddNewline(); |
| 1442 | |
| 1443 | DumpLayers(p, instance.global_layers, gpus); |
| 1444 | #if defined(VULKANINFO_WSI_ENABLED) |
| 1445 | // Doesn't print anything if no surfaces are available |
| 1446 | DumpPresentableSurfaces(p, instance, gpus, surfaces); |
| 1447 | #endif // defined(VULKANINFO_WSI_ENABLED) |
| 1448 | DumpGroups(p, instance); |
| 1449 | |
| 1450 | p.SetHeader(); |
| 1451 | ObjectWrapper obj(p, "Device Properties and Extensions"); |
| 1452 | IndentWrapper indent(p); |
| 1453 | |
| 1454 | for (auto &gpu : gpus) { |
| 1455 | DumpGpu(p, *(gpu.get()), parse_data.show); |
| 1456 | } |
| 1457 | } |
| 1458 | } |
| 1459 | |
| 1460 | #ifdef VK_USE_PLATFORM_IOS_MVK |
| 1461 | // On iOS, we'll call this ourselves from a parent routine in the GUI |
no test coverage detected