The open source OpenXR runtime

aux/vk: Print available GPUs with XRT_COMPOSITOR_PRINT_DEBUG

Useful for finding out a gpu index to use for XRT_COMPOSITOR_FORCE_GPU_INDEX.

+30 -15
+30 -15
src/xrt/auxiliary/vk/vk_helpers.c
··· 784 784 } 785 785 786 786 787 + static void 788 + vk_print_device_info_debug(struct vk_bundle *vk, 789 + VkPhysicalDeviceProperties *pdp, 790 + uint32_t gpu_index, 791 + const char *title) 792 + { 793 + VK_DEBUG(vk, 794 + "%s" 795 + "\tname: %s\n" 796 + "\tvendor: 0x%04x\n" 797 + "\tproduct: 0x%04x\n" 798 + "\tapiVersion: %u.%u.%u\n" 799 + "\tdriverVersion: %u.%u.%u", 800 + title, pdp->deviceName, pdp->vendorID, pdp->deviceID, 801 + VK_VERSION_MAJOR(pdp->apiVersion), 802 + VK_VERSION_MINOR(pdp->apiVersion), 803 + VK_VERSION_PATCH(pdp->apiVersion), 804 + VK_VERSION_MAJOR(pdp->driverVersion), 805 + VK_VERSION_MINOR(pdp->driverVersion), 806 + VK_VERSION_PATCH(pdp->driverVersion)); 807 + } 808 + 787 809 /* 788 810 * 789 811 * Creation code. ··· 828 850 VK_DEBUG(vk, "Forced use of Vulkan device index %d.", 829 851 gpu_index); 830 852 } else { 853 + VK_DEBUG(vk, "Available GPUs"); 831 854 // as a first-step to 'intelligent' selection, prefer a 832 855 // 'discrete' gpu if it is present 833 856 for (uint32_t i = 0; i < gpu_count; i++) { 834 857 VkPhysicalDeviceProperties pdp; 835 858 vk->vkGetPhysicalDeviceProperties(physical_devices[i], 836 859 &pdp); 860 + 861 + char title[20]; 862 + snprintf(title, 20, "GPU index %d\n", i); 863 + vk_print_device_info_debug(vk, &pdp, i, title); 864 + 837 865 if (pdp.deviceType == 838 866 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU) { 839 867 gpu_index = i; ··· 843 871 844 872 vk->physical_device = physical_devices[gpu_index]; 845 873 846 - // Debug print info. 847 874 VkPhysicalDeviceProperties pdp; 848 875 vk->vkGetPhysicalDeviceProperties(physical_devices[gpu_index], &pdp); 849 - VK_DEBUG(vk, 850 - "Selected device:\n" 851 - "\tname: %s\n" 852 - "\tvendor: 0x%04x\n" 853 - "\tproduct: 0x%04x\n" 854 - "\tapiVersion: %u.%u.%u\n" 855 - "\tdriverVersion: %u.%u.%u", 856 - pdp.deviceName, pdp.vendorID, pdp.deviceID, 857 - VK_VERSION_MAJOR(pdp.apiVersion), 858 - VK_VERSION_MINOR(pdp.apiVersion), 859 - VK_VERSION_PATCH(pdp.apiVersion), 860 - VK_VERSION_MAJOR(pdp.driverVersion), 861 - VK_VERSION_MINOR(pdp.driverVersion), 862 - VK_VERSION_PATCH(pdp.driverVersion)); 876 + 877 + vk_print_device_info_debug(vk, &pdp, gpu_index, "Selected device:\n"); 863 878 864 879 // Fill out the device memory props as well. 865 880 vk->vkGetPhysicalDeviceMemoryProperties(vk->physical_device,