AMD's Vulkan Driver Will Only Work With The AMDGPU Kernel Driver
I've just received confirmation from AMD that their forthcoming Vulkan driver will only work with the AMDGPU DRM kernel driver. This means that unless this AMDGPU kernel driver is extended to support pre-VI hardware, only the very latest AMD GPUs on Linux will work with Khronos' next-generation API.
Last week I shared a bunch of new details about the AMDGPU / Radeon Linux plans for the year following a briefing with several AMD engineers. One of the follow-up questions I had was whether their Vulkan driver they developed will work with the existing Radeon DRM driver or be limited to the AMDGPU driver.
The AMDGPU driver is what currently supports the Radeon R9 285 "Tonga", R9 Fury "Fiji" series, Carrizo, etc. Basically, GCN 1.2 and all future GPUs. For some background, from the article last week I wrote, "the current 'Catalyst driver' will be put in effectively maintenance mode as they'll be focusing upon the one-kernel-driver model. The new AMDGPU-based driver will support all new Radeon GPU designs from 2015 and newer...But what does this mean for users of GPUs not supported by AMDGPU looking for the best OpenGL support/performance? A.k.a. the pre Volcanic Islands hardware, before Tonga, Carrizo, and Fiji? It's not entirely clear yet. There is the experimental AMDGPU config option for pre-GCN1.2 support, but that's not currently enabled by default. When bringing up this whole issue then of what Radeon hardware would actively be supported, it sounds like it will largely depend upon the community feedback and other matters. Otherwise this would just mean that those without the very latest hardware would be bound to using the fully-open Radeon DRM + R600g/RadeonSI driver stack if the current Catalyst driver is not to be maintained for compatibility with new Linux kernel and X.Org Server release."
So besides the forthcoming AMDGPU-powered proprietary driver only working with the very latest AMD GPUs, the Vulkan Linux driver is also designed to work with only the same selection of hardware. It's still undetermined whether the "CIK" GPUs will see their experimental support enabled by default by the mainline driver. Even if that were to be the case, that still doesn't cover the HD 7000 series.
The question I followed-up with AMD this week was, "Will the forthcoming Vulkan driver be tied to the AMDGPU kernel driver / AMDGPU libdrm interfaces or will you also be officially supporting Vulkan outside of just the AMDGPU-specific scope?" To which the official response is, "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." I was just relayed this today by one of AMD's media account executives.
AMD's Mantle worked with select hardware going back to the Radeon HD 7000 series and newer while their DirectX 12 Windows driver works going back to the Radeon HD 7000 series and select 600 series APUs. AMD hasn't said what GPUs under Windows they will support with Vulkan, but I would presume the entire GCN line-up given the similarities to Mantle and DX12. Khronos has said Vulkan is technically capable of supporting GPUs that have OpenGL ES 3.1 or OpenGL 4.X compatibility. However, on the Linux side for AMD, it's now confirmed that it's just for the new AMDGPU stack and for now limited to the Tonga/Fury/Carrizo and newer graphics cards -- unless AMD decides to extend the AMDGPU coverage to the GCN 1.1 hardware. If that's not the case, most Rx 200/300 series hardware won't even be supported by Vulkan on Linux.
The R9 285 is the first card officially supported by the AMDGPU driver.
As written about before, AMD's Vulkan Linux driver will be closed-source at first. Later on once it's open-sourced perhaps by the community we'll be able to see the support extended to other GCN GPUs. This just further reinforces that OpenGL still certainly has a long life ahead, at least for Linux gamers.
Update: You Can Help Bring Vulkan Support To Older AMD GCN GPUs