在 Vulkan 上获取默认渲染设备

问题描述

我有一个基于 OpenGLES 的引擎,它从通过 eglGetdisplay 获得的 EGLdisplay 对象创建 EGLSurface 对象,并带有 EGL_DEFAULT_disPLAY 参数。

现在我想将引擎移植到 Vulkan,在 gpu 中,vkEnumeratePhysicalDevices 方法返回给我,我想最好以与 eglGetdisplay 在内部选择其设备相同的方式选择认 gpu。

在 Vulkan 下是否有认设备的概念以及如何识别它?

问候

解决方法

没有正式的默认设备概念。但是,一些驱动程序安装了隐式层,这些层对物理设备列表进行重新排序,以便第一个枚举的物理设备是首选的。 VK_MESA_device_select layer 就是一个典型的例子。因此,如果第一个物理设备满足您的要求并且您没有特别的理由选择不同的设备,那么这应该是很好的默认设置。