Vulkan API and the future of HAIKU OS graphics

Hello there,

How are you guys doing so yesterday was an exiting day with the official launch of VULKAN API. LunarG the company sponsored by Valve to make open source tools for vulkan has released the SDK http://lunarg.com/vulkan-sdk/ . I think that with the drivers being released as open source will be a good argument to ditch OpenGL and start working on Vulkan implementation.

what do you think?

Does Vulkan still need video card drivers? I think it does, which reduce its usefulness for Haiku.

I think OpenGL will not be ditched because as far as I know:

  • BeOS had OpenGL, and since Haiku’s R1 target is BeOS compatibility, OpenGL should be present.
  • OpenGL still serves a different purpose to Vulkan

That said, I’m sure someone will write Vulkan accelerants for Haiku eventually. It might be more than a little while longer however before you see game engines supporting Haiku and using Vulkan…

All this will happen when someone makes it happen and not before. Bear in mind that the recently published Intel Vulkan driver for Linux might be a good place to start, along with this article: https://www.haiku-os.org/legacy-docs/writing-video-card-drivers - check that the license is compatible first, though. Most of the Mesa stuff is MIT licensed too, so it should be OK.

vulkan api uses new drivers that are being open sourced. The drivers are less complex than OpenGL ones. Vulkan is more than OpenGL being a low level API it combines graphical libraries also it has compute libraries include.

Haiku isn’t dropping OpenGL.

  • We don't want to break existing OpenGL games
  • BeOS had an OpenGL kit, this would break api compatibility

Haiku uses Mesa for OpenGL and Mesa will be implementing Vulkan. What Haiku needs is C++ wrappers written for the Vulkan API like Mesa has.

Post-R1 the OpenGL kit may need to become the “Rendering Kit” or something which provides OpenGL and Vulkan interfaces.

So i’d say Haiku won’t have native Vulkan apis until sometime post-R1.

There are actually already c++ wrappers for vulkan here:
https://github.com/nvpro-pipeline/vkcpp