You Can Help Bring Vulkan Support To Older AMD GCN GPUs

Written by Michael Larabel in AMD on 15 January 2016 at 10:31 PM EST. 87 Comments
AMD
Earlier today I wrote about how AMD will only be supporting Vulkan with the AMDGPU DRM kernel driver and not the more common Radeon DRM kernel driver. Here's a few more points to clarify the situation.

That article was about receiving confirmation from AMD that "our Linux Vulkan drivers will only run on the amdgpu kernel driver. We have no plans, on Linux, to support Vulkan on any other driver stack." Right now that means there is just support for the Tonga / Fiji / Carizo / Stoney hardware and all future graphics processors like Polaris. Where there's been some confusion has been whether AMD will support older GCN GPUs prior to Volcanic Islands with the AMDGPU kernel driver where already these older GPUs are supported by the Radeon DRM. The AMDGPU driver does have the experimental Sea Islands support, but that's disabled by default and there is currently no coverage of Radeon HD 7000 series hardware by this newer driver. AMD is investigating possibilities around supporting older GCN GPUs, but that's undecided as mentioned in the AMDGPU update I posted last week after a briefing by AMD.

This situation was made a bit more confusing after my article earlier today as Graham Sellers of AMD had tweeted, "To be perfectly clear, #AMD is planning to support #Vulkan on ALL GCN parts and to use the same #user mode driver on Windows + #Linux." Depending upon how you interpret it, that sounds like AMD will support Vulkan on all GCN (HD 7000 series and later) hardware. But how can that happen if those GPUs don't (currently) have AMDGPU kernel support? He's only talking about the user-space side of the equation

After bouncing a few emails this evening with Graham Sellers and Alex Deucher, it's been clarified that in the user-space AMD Vulkan driver there is support for all GCN GPUs. But, yes, the Vulkan driver is only targeting the AMDGPU kernel driver and AMD hasn't come to any formal conclusion about bringing support for older GCN GPUs to AMDGPU. However, as they were quick to remind, technically the community can bring the older GCN support to AMDGPU.

According to Graham, the Vulkan user-space driver -- even with initially being a closed-source blob -- would be able to support the older GCN GPUs with it just a matter of enhancing the open-source AMDGPU kernel driver to support the hardware going back to the HD 7000 series. Graham commented, "If the Open Source amdgpu kernel driver could boot up and talk to a pre-VI GPU, our Linux user-mode driver would run on it just fine. Honestly, that is the part that’s blocking us from supporting pre-VI on Linux immediately. You have great ties to the community. I see at the end of your post, you wrote, 'Later on once it's open-sourced perhaps by the community we'll be able to see the support extended to other GCN GPUs.' As I said, it’s not the part that will be initially closed source that lacks support, it’s the Open Source part. The community has access to that now."

Graham wrote a similar follow-up message on Twitter, "We have an #open source kernel mode #driver on #Linux which supports #VI and would love #community involvement. http://cgit.freedesktop.org/mesa/drm/log/amdgpu" (Not to be confused, the link Graham used for the open-source kernel driver wasn't the actual kernel driver but rather the AMDGPU bits that are part of Libdrm, the DRM library that interfaces between the user-space components and the AMDGPU DRM driver. To see the actual kernel driver code, that's over here).

So while AMD may end up porting the older GCN GPU support to the AMDGPU kernel driver, there are no plans to bring the Vulkan user-space driver to interface with the Radeon DRM driver. However, with both of these kernel drivers being open-source, those able to in the community could lend AMD a hand and work to bring older GCN support to AMDGPU.

Graham in an email to Phoronix had also reaffirmed that the Vulkan user-space driver is the same code-base between Windows and Linux, "Our user mode Vulkan driver supports all GCN parts starting from 1.0 (Southern Islands). We use an identical user-mode component on Windows and Linux (compiled for the appropriate target of course). The differences are minimal – window system stuff, and some abstractions of system level things like mutexes and shared memory."
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