Here's one I wasn't aware of, developer Erik “kusma” Faye-Lund from Collabora has been working on Zink. It's a new OpenGL implementation that works on top of Vulkan. It's a "Mesa Gallium driver", which aims to provide "hardware accelerated OpenGL when only a Vulkan driver is available".
Writing about the work in a blog post, the developer talked a little about why they're doing it. Their aims include: simplifying the graphics stack, lessening the work-load for future GPU drivers, enabling more integration and supporting application porting to Vulkan. Sounds like some pretty useful goals to me. They do go into more detail on each point, which is worth reading. The idea of everyone targeting Vulkan in future, with something like this being used for OpenGL is quite interesting if it could ever happen.
While it's still early days for the project, it's currently only supporting OpenGL 2.1, and OpenGL ES 1.1 and 2.0 plus some extensions and so it has some ways to go before it's truly useful. Even so, it sounds exciting and they show off some simple games working with it already. Dave Airlie from Red Hat has also been jumping in, with work on OpenGL 3.3 progressing so it looks like it might move forwards quite quickly.
See more about it here.
Hat tip to Joe from our Telegram Group.
Last edited by Botonoski on 2 November 2018 at 3:22 pm UTC
Hopefully this will get us better OpenGL drivers in embedded devices. Unfortunately, companies could still provide their Vulkan drivers as blobs only, and better OGL support is, AFAIK, a driving force behind SoC companies contributing to Mesa.
Just imagine Nine over Zink over MoltenVK (would it be HLSL/DXIL -> TGSI -> ( NIR -> ) SPIR-V -> MLSL -> LLVM IR -> machine code?). I guess Nine would actually end up mainlined if this was a possibility.
Last edited by MayeulC on 2 November 2018 at 4:19 pm UTC
I would consider Zink as well as more than enough for desktop and VM usage. Plus the DX9 implementation of Gallium Nine based on Vulkan sounds promising as well.
1. Nobody in their right mind would start a new OpenGL implementation without using Mesa.
2. Gallium itself is a modern API that should map reasonably well to Vulkan for the most part, it's somewhat similar to the D3D11 DDI.
(3. It might bring Nine to Nvidia one day. Would require Nine to add NIR support though.)
Quoting: GustyGhostI'm getting lost in keeping up with all of the different API translation projects. It's all beginning to resemble a hillbilly family tree.
Yes Vulkan brought so many great new possibilities :-) On the graphic side I just see OpenGL and DirectX <=9 as the missing pieces in the Vulkan landscape. Zink seems to progress well, then there is Glove for OpenGL and VK9 for DX9.
Last edited by YoRHa-2B on 2 November 2018 at 10:21 pm UTC
Quoting: YoRHa-2Bdgvoodoo2 is a decent implementation of D3D <=8 on top of D3D11, which apparently works quite nicely on DXVK and seems to work better than wined3d in some games. Sadly it's not open-source.
Never heart of that, thanks. And besides D3D <=8 it supports Glide too :-) I almost forgot this good old API. I knew there is nGlide as a direct translation to Vulkan (but not open source either). I've seen that there is DXWrapper (D3D1..6 translated to 7, plus 8 to 9 with the help of D3D8to9, open source), but obviously then something like Zink/VK9 was the missing piece. Sad that dgvoodoo2 is not open source, a partnership with GOG could have made this available if they only would care...
Last edited by raneon on 2 November 2018 at 10:57 pm UTC
Quoting: devnullThis isn't meant as a reflection on Collabora but what I kind of worry about with things like this is churn for the sake of churn. There _shouldn't_ be one standard because it sets the bar extremely high and centralizes control within those organizations. I could, for example, see companies push DRM indrectly through drivers. Anyone remember blueray players that required updates before you could watch? Yeah, that kind of thing.
As most of these development are open source I do not really understand your concern... the only thing we get here is more control then less from my point of view.
Quoting: YoRHa-2B(3. It might bring Nine to Nvidia one day. Would require Nine to add NIR support though.)
Could you elaborate on this a bit, please? I was under the impression that Nine would use TGSI as an intermediate representation, that NIR <-> TGSI was pretty functional, and that Zink, being a Gallium driver, would accept TGSI. Am I wrong and Zink is only being fed NIR?
I guess it sort of makes sense since I think we have NIR -> SPIR-V, but no TGSI -> SPIR-V.
See more from me