Vulkan lavapipe software rendering is working on Haiku

Some progress on RadeonGfx:

  1. Fixed some small memory management bug in libdrm2 found when implementing Wine Vulkan support.

  2. Added ability to change GPU frequency at runtime.

  3. Added ability to register areas as GTT buffers with Vulkan VkImportMemoryHostPointerInfoEXT extension. Area must be created with locked physical memory (B_FULL_LOCK). Used in my WSI add-on.

  4. Added ability to allocate VMIDs, so multiple processes that use GPU work faster and correctly. VMID is address space identifier that is used when executing GFX ring commands. Multiple address spaces can be used in parallel. Radeon GPU supports up to 15 VMIDs.

  5. Added some stub PCI bus information in libdrm2 to test Vulkan GPU enumeration.

  6. Implemented condition variable for SA Domains used in (4) to wait for free VMIDs.






If someone implements Vulkan HW for Haiku, would there need to be individual drivers for each Vulkan-supported graphics card, or is there same Vulkan API that would work for all newer Vulkan cards without needing to write extra drivers?

Nice, but that ‘crysis demo’ icon looks intresting, have you been able to run it @X512 ?

1 Like

Any updates ?


Xonotic game running with RadeonGfx:


WOW!!! it is great!!


wow, when can we get acess ?


@3deyes made game patches.


to the driver ?? or a complete image of OS with all needed patches ?


You have plans to release the RadeonGfx soon for test? it is looking very good.


@X512 I tested the vulkan demos with mesa lavapipe package available on haikudeport,they look good, is there a possibility to try zink on top of vulkan or is it still not working?
Is the zink library on haikudeport and I couldn’t find it?
I would like to test the performance of blender, currently through llvm softpipe mesa opengl it is totally unusable, too slow, while the vulkan demos seem quite performing


Keep in mind that Beta4 release is not yet out so we might be in the midst of a feature freeze until the release day.

I’m with the nightly , and anyway what’s the problem? they are not installed by default


Didn’t BeOS use OpenGL as its graphics driver? I’m operating under the assumption that Mesa, being the OpenGL equivalent for Haiku and others, is a core component. Zink should definitely come out but not while core components are being tested against for a release.

1 Like

I was referring to the vulkan lavapipe, zink should work automatically on top of vulkan no need for any changes, just tell the mesa with a variable to use zink…
$ LIBGL_DRIVERS_PATH=/tmp/zink/lib64/dri/ MESA_LOADER_DRIVER_OVERRIDE=zink glxgears -info
(on linux it works like this, not sure it’s the same on haiku).
However, I think it should be better, since opengl not accelerated at all is of little use :slight_smile:
Mesa lavapipe is not installed by default, that’s what I meant,
I don’t know if I’m misunderstanding.

If there’s a way to switch OpenGL emulation with a runtime switch, then there’s no reason for concern. My concern was the changes that would otherwise be needed in Mesa.

1 Like

If and when there will be accelerated drivers in the gpus, they will directly use accelerated openGL library, or if there will never be and there will be only accelerated vulkan, like the X512 drivers for ATI, then zink is used, is the shortest way … and at the moment probably the only way to have openGL accelerated via gpu … the second option is lavapipe which are vulkan accelerated via CPU, which with CPU with many cores you have decent performance, and consequently also decent openGL

1 Like

$ MESA_LOADER_DRIVER_OVERRIDE=zink glxgears -info
Awhile ago, I added the Zink patches from X512 to Mesa 23.0 (now officially a stable release). I may get things finalized after the R1B4 release (or someone else) for Mesa 23.0.1.


this is good news, so if i start an app that uses opengl (blender) with that variable, is zink already working in the nightly? … I’m going to give it a try immediately