Zink Is Moving Ahead In 2019 As Mesa-Based OpenGL-Over-Vulkan

Written by Michael Larabel in Mesa on 6 February 2019 at 12:06 AM EST. 15 Comments
Remember Zink, that project started a few months back for implementing OpenGL over Vulkan using Mesa/Gallium3D? While there may have not been too much to report on it recently, that side project by Collabora developer Erik Faye-Lund does continue to progress and currently allows for OpenGL 3.0 to be implemented and run over the Intel and Radeon Vulkan drivers.

Zink started off with basic OpenGL 2.1 and since then has advanced to OpenGL 3.0 while a lot more implementation work is ahead before it could reach the OpenGL 4.x extensions. The performance has also continued to improve but more can be done on the optimization front as well.

Erik Faye-Lund presented at last weekend's FOSDEM event in Brussels to cover the current state of Zink, which has yet to be mainlined into Mesa. Among the highlights from his presentation include:

- Zink's focus indeed remains on translating Gallium API calls from the OpenGL state tracker to Vulkan as opposed to directly mapping OpenGL to Vulkan.

- The OpenGL 3.0 support works on Radeon RADV and Intel ANV Vulkan drivers but hasn't been tested on any other Vulkan drivers.

- David Airlie of Red Hat, the DRM subsystem maintainer and Virgl maintainer, has also begun contributing a lot to this project.

- Right now "a lot of games and demos with usable performance" are able to run.

- Before Zink is merged/mainlined into Mesa, some re-engineering is currently happening in order to address some early design mistakes. There has been difficulties with Zink due to its use of the NIR intermediate representation, among other early shortcomings that are now being addressed.

- Among the other challenges for Zink are Vulkan not having 1:1 functionality between OpenGL and Vulkan. Such as variations around these graphics API's polygon mode, texture border colors, and point size.

- Once Zink is upstreamed to Mesa, work on further versions of OpenGL will be tackled.

- Seeing support for the NVIDIA driver will be a problem as for windowing system integration one code path relies upon Mesa's software rasterizer while the other is using file descriptors for sharing the memory and that requires DRI support, which NVIDIA doesn't support.

- While Virgl has been bringing together its OpenGL support for exposing to guest VMs using VirtIO-GPU, there is potential interest on the Virgl front for using Zink due to better security and possible optimizations.

More details as to the current state of Zink for Gallium3D OpenGL over Vulkan via this PDF slide deck.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week