| 373 | } |
| 374 | |
| 375 | void GpuDumpProps(Printer &p, AppGpu &gpu, bool show_promoted_structs) { |
| 376 | auto props = gpu.GetDeviceProperties(); |
| 377 | p.SetSubHeader(); |
| 378 | { |
| 379 | ObjectWrapper obj(p, "VkPhysicalDeviceProperties"); |
| 380 | p.SetMinKeyWidth(17); |
| 381 | if (p.Type() == OutputType::json) { |
| 382 | p.PrintKeyValue("apiVersion", props.apiVersion); |
| 383 | p.PrintKeyValue("driverVersion", props.driverVersion); |
| 384 | } else { |
| 385 | p.SetValueDescription(std::to_string(props.apiVersion)).PrintKeyString("apiVersion", APIVersion(props.apiVersion)); |
| 386 | p.SetValueDescription(std::to_string(props.driverVersion)) |
| 387 | .PrintKeyString("driverVersion", gpu.GetDriverVersionString()); |
| 388 | } |
| 389 | p.PrintKeyString("vendorID", to_hex_str(props.vendorID)); |
| 390 | p.PrintKeyString("deviceID", to_hex_str(props.deviceID)); |
| 391 | p.PrintKeyString("deviceType", VkPhysicalDeviceTypeString(props.deviceType)); |
| 392 | p.PrintKeyString("deviceName", props.deviceName); |
| 393 | p.PrintKeyValue("pipelineCacheUUID", props.pipelineCacheUUID); |
| 394 | } |
| 395 | p.AddNewline(); |
| 396 | DumpVkPhysicalDeviceLimits(p, "VkPhysicalDeviceLimits", gpu.props.limits); |
| 397 | p.AddNewline(); |
| 398 | DumpVkPhysicalDeviceSparseProperties(p, "VkPhysicalDeviceSparseProperties", gpu.props.sparseProperties); |
| 399 | p.AddNewline(); |
| 400 | if (gpu.inst.CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) { |
| 401 | void *place = gpu.props2.pNext; |
| 402 | chain_iterator_phys_device_props2(p, gpu.inst, gpu, show_promoted_structs, place); |
| 403 | } |
| 404 | } |
| 405 | |
| 406 | void GpuDumpQueueProps(Printer &p, AppGpu &gpu, const AppQueueFamilyProperties &queue) { |
| 407 | VkQueueFamilyProperties props = queue.props; |
no test coverage detected