目前关于 Vulkan 这个新的图形 API 有很多关注 - https://www.khronos.org/vulkan
我的问题是关于现有 EGL 接口将如何适应 Vulkan API,由于 Vulkan 的无状态特点,是否需要用基于 Vulkan 的替代方案来替换 EGL?
直到现在,从 EGL 可访问的三个 API(OpenGL、OpenGL ES 和 OpenVG)可以使用线程上下文,那 Vulkan 呢?
EGL是明确线程安全的。
这意味着通过Vulkan的扩展,您可以将EGLSurface绑定为管道中的渲染目标或将其用作缓冲区交换的参数。此EGLSurface将通过正常方式创建,创建EGLDisplay的eglQueryString(display,EGL_CLIENT_APIS)必须包括“Vulkan”。
然而,上下文位有点棘手。我预计会使用虚拟的(零状态)上下文来标记线程正在使用Vulkan进行渲染。
EGL甚至不会涉及其中。您需要使用加载器从头开始获取实例。并且有一组扩展将从操作系统获取窗口句柄,并提供具有多个vkImage的vkSwapchain,您可以将其渲染并发送到监视器。
WsiEGL
有人用过吗?)。 - datenwolf