
RADV: An open-source Vulkan implementation for AMD graphics cards - jrepin
https://github.com/airlied/mesa/tree/semi-interesting/src/amd/vulkan
======
jrepin
Announcement by Dave Airlie: [https://lists.freedesktop.org/archives/mesa-
dev/2016-July/12...](https://lists.freedesktop.org/archives/mesa-
dev/2016-July/123861.html)

I was waiting for an open source driver to appear when I realised I should
really just write one myself, some talking with Bas later, and we decided to
see where we could get.

This is the point at which we were willing to show it to others, it's not
really a vulkan driver yet, so far it's a vulkan triangle demos driver.

It renders the tri and cube demos from the vulkan loader, and the triangle
demo from Sascha Willems demos and the Vulkan CTS smoke tests (all 4 of them
one of which draws a triangle).

There is a lot of work to do, and it's at the stage where we are seeing if
anyone else wants to join in at the start, before we make too many serious
design decisions or take a path we really don't want to.

So far it's only been run on Tonga and Fiji chips I think, we are hoping to
support radeon kernel driver for SI/CIK at some point, but I think we need to
get things a bit further on VI chips first.

The code is currently here: [https://github.com/airlied/mesa/tree/semi-
interesting](https://github.com/airlied/mesa/tree/semi-interesting)

There is a not-interesting branch which contains all the pre-history which
might be useful for someone else bringing up a vulkan driver on other
hardware.

The code is pretty much based on the Intel anv driver, with the winsys ported
from gallium driver, and most of the state setup from there. Bas wrote the
code to connect NIR<->LLVM IR so we could reuse it in the future for SPIR-V in
GL if required. It also copies AMD addrlib over, (this should be shared).

Also we don't do SPIR-V->LLVM direct. We use NIR as it has the best chance for
inter shader stage optimisations (vertex/fragment combined) which neither
SPIR-V or LLVM handles for us, (nir doesn't do it yet but it can).

If you want to submit bug reports, they will only be taken seriously if
accompanied by working patches at this stage, and we've no plans to merge to
master yet, but open to discussion on when we could do that and what would be
required.

