Feral Discusses Mad Max's New Vulkan Renderer
It’s been something like a month now since Feral released a public beta of Mad Max’s Vulkan Renderer, following the initial port released last year using OpenGL. The effort to support Vulkan is natural as it is seen as the next generation graphics API for Linux and Android (and potentially Windows as well, while DX12 is leading among many game developers), and much development resources from various parties are invested in it (even middleware engines are progressively including Vulkan renderers, like Unity and Unreal 4).
We were interested to find out when Feral had started working on Vulkan, for Mad Max and in general. Edwin from Feral Interactive was kind enough to answer a few of our questions.
Edwin from Feral: For Vulkan we’ve been actively working on it since the second half of last year [i.e. 2016], but preparation for transitioning to Vulkan was underway earlier. The hardest part was the initial refactor in our shared codebase to allow for these explicit APIs.
Drivers are still in the experimental stage for most GPU manufacturers, and while some of them are fairly stable they are not yet bug-free. Edwin thinks they are nonetheless all making good progress:
Edwin: We’ve hit edge cases on all drivers that required fixes. On the whole however they’re stable - much more so than the OpenGL drivers were when we started on Linux. RADV [the open source radeon vulkan driver] is also making huge steps forward, and we’ve been working closely with that team.
While most of that work is invisible to gamers, Feral has been collaborating with multiple external parties as they tackled work on this Vulkan renderer:
Edwin: We speak regularly with hardware vendors and driver engineers. We’ve co-ordinated on bug fixes and have also had plenty of useful feedback on API usage.
There were various gains in performance in Mad Max’s Vulkan renderer vs OpenGL, mainly in the parts where the framerate used to drop pretty significantly before (such as the fists fight scenes) - as Vulkan in general tends to be less demanding on the CPU, reducing the potential of CPU bottlenecks.
This was expected, and it could even go further than what we have seen so far:
Edwin: The gains specific to Mad Max were in the ball park we were expecting, but there’s always more work you can do. Vulkan offers the potential for us to make performance improvements that simply weren’t possible in OpenGL.
Of course, everyone in the Linux community is now looking forward to Vulkan being used everywhere and for everything in the near future, but that’s not given at this stage, and Feral’s approach to implement the renderer first on an previously released game shows that they are still experimenting for now.
When probed on whether or not their next games would also target Vulkan…
Edwin: Some of the work [done on Mad Max] is transferable. We see Vulkan as the future, but don’t have anything to say yet about which APIs we’ll be targeting for upcoming games.
It is not really surprising to see them being cautious - they know exactly what to expect from OpenGL, and OpenGL is now mature and well supported on most GPUs thanks to the work done on Mesa especially for AMD and Intel. This being said, Feral as a company remains at the forefront of Vulkan experimentation so far, as neither VP nor Aspyr have shown or communicated regarding their intention to use Vulkan at some point for their own ports.
While our previous discussion with Feral precedes this beta Vulkan port, you may want to check out our podcast with Feral Interactive released in January as it touches on a number of topics related to Linux Gaming, including Vulkan and OpenGL. And you might as well consider purchasing Mad Max since it’s a very decent Open World game.
All screenshots from this article were taken from Mad Max on Linux running with the Vulkan renderer.