Quick Look: Vulkan Performance on The Talos Principle
by Daniel Williams & Ryan Smith on February 17, 2016 10:00 AM ESTFollowing yesterday’s hard launch of Vulkan 1.0 – drivers, development tools, and the rest of the works – also released alongside Vulkan was the first game with Vulkan rendering support, The Talos Principle. Developer Croteam has a history of supporting multiple rendering paths with their engines, and the 2014 puzzle-em-up is no different, supporting DirectX 9, DirectX 11, and OpenGL depending on which platform it’s being run on. Now with Vulkan’s release Croteam has gone one step further, implementing early Vulkan support in a beta build of the game.
Since this is the first game with any kind of Vulkan support, we wanted to spend a bit of time looking at what Vulkan performance was like under Windows. Games with full support for Vulkan are still going to be some time off, as even with game dev participation in the standardization process it takes time to write a solid and high efficiency rendering path for these new low-level APIs, but none the less it gives us a chance to at least take a peek at the state of Vulkan on day 1.
To be very clear here this is an early look at Vulkan performance; Croteam admits from the get-go that their current implementation is very early, and is not as fast as their now highly tuned DirectX 11 implementation. Furthermore The Talos Principle is not a title that’s designed to exploit the CPU utilization and draw call improvements that are central to Vulkan (unlike say Star Swarm when we first looked at DX12). So with that in mind, it’s important to set reasonable expectations of what’s to come.
On the driver side of matters, both AMD and NVIDIA released Vulkan drivers yesterday. As is common with new API releases, both drivers are developer betas and either lack features or are based on older branches than current consumer drivers, however the NVIDIA driver has passed Vulkan conformance testing. AMD and NVIDIA will be integrating Vulkan into their release consumer drivers in the future as they improve on driver quality and catch up with the latest driver branches.
Finally, for our testing we’re using our standard GPU testbed running Windows 8.1, in part to showcase Vulkan on a platform that can’t receive DirectX 12. As the release of AMD’s drivers was unexpected – we had already begun preparing for this article earlier in the week – we don’t have results for very many AMD cards, but as this is a quick look it gets the point across.
CPU: | Intel Core i7-4960X @ 4.2GHz |
Motherboard: | ASRock Fatal1ty X79 Professional |
Power Supply: | Corsair AX1200i |
Hard Disk: | Samsung SSD 840 EVO (750GB) |
Memory: | G.Skill RipjawZ DDR3-1866 4 x 8GB (9-10-9-26) |
Case: | NZXT Phantom 630 Windowed Edition |
Monitor: | Asus PQ321 |
Video Cards: | NVIDIA GeForce GTX 980 Ti NVIDIA GeForce GTX 960 NVIDIA GeForce GTX 760 AMD Radeon R9 Fury X AMD Radeon R9 285 AMD Radeon R9 370 |
Video Drivers: | NVIDIA Release 361.91 (DX11 & OpenGL) NVIDIA Beta 356.39 (Vulkan) AMD Radeon Software Crimson 16.1.1 Hotfix (DX11 & OpenGL) AMD Radeon Software Beta for Vulkan (Vulkan) |
OS: | Windows 8.1 Pro |
The Talos Principle: Performance
Update 02/19: By request, I've also added Fury X numbers to our comparison to showcase high-end AMD performance
We’ve gone ahead and run our full collection of cards with Ultra settings at both 1080p and 720p to showcase a typical gaming workload and a lighter workload that is much more unlikely to be GPU limited. We’ve also gone ahead and run our two most powerful cards, the GeForce GTX 980 Ti and Radeon R9 Fury X, at 1440p to also showcase a more strictly GPU-bound scenario.
As expected from Croteam’s comments, at no point here does Vulkan catch up with DirectX 11. This is still an early rendering path and there’s no reason to expect that in time it won’t get up to the speed of DX11 (or even surpass it), but that’s not the case right now.
The real reason we set about to run these tests was not to compare early Vulkan to DX11, but rather to compare Vulkan to the API it succeed, OpenGL. OpenGL itself isn’t going anywhere – it is the DirectX 11 to Vulkan’s DirectX 12, the API that will remain for non-guru programmers who don’t need the power but need easier access – but as OpenGL suffers from many of the same performance bottlenecks as DX11 (plus some whole new ones from a 24 year legacy), there’s clear room for improvement with Vulkan.
To that end the results are more promising. As compared to The Talos Principle’s OpenGL renderer, the Vulkan renderer is not all that different in performance in clearly GPU-bound scenarios. But once we start looking at CPU-bound scenarios, even in a somewhat lightweight game like The Talos Principle, Vulkan pulls ahead. This is especially evident on the GTX 980 Ti and R9 Fury X at 1080p, and across a few different cards at 720p. This offers our first sign that Vulkan will indeed be capable of bringing its desired CPU performance benefits to games, perhaps even in games where they’re not explicitly pushing the draw calls limits of a system.
These performance results do also highlight some performance issues as well. The two slower AMD cards – both of which have 2GB of VRAM – see some unusual performance regressions. Based on our experience with DX12 and Mantle, it seems likely that on these settings The Talos Principle is approaching full VRAM utilization, leading to the occasional drop in performance. Just as with DX12, developers have near-full control of the GPU, and will need to manage VRAM usage carefully.
Radeon R9 285 Running via Vulkan
As for image quality, the rendering path that Croteam has implemented appears to be every bit as good as their existing paths. Both AMD and NVIDIA cards exhibited great image quality that was comparable to the baseline DX11 rendering path. And admittedly we weren’t expecting any differently, but it means there are no image quality affecting bugs that we’ve picked up on in our testing.
That said, these Vulkan drivers are classified as betas by both AMD and NVIDIA, and this is not a misnomer. We encountered issues with drivers for both parties, particularly in NVIDIA’s case where we couldn’t successfully run a Talos benchmarking session twice without rebooting, otherwise the game would crash. So coupled with the known limitations for these drivers, it goes without saying that these drivers are really only for testing and development purposes, and that AMD and NVIDIA will need to knock out some more bugs before integrating Vulkan support into their release drivers.
Overall with this being the third low-level API release in the past two years (and a rebirth of sorts for Mantle), for our regular readers there aren’t any great surprises to be found with Vulkan as implemented on The Talos Principle. Still, the results do show promise. Khronos has set about creating a new cross-platform low-level API, and this early preview of Vulkan shows that they have achieved their basic goals. Now it will be a matter of seeing what developers can do with the API with more developer time and in conjunction with further driver improvements from AMD, NVIDIA, and the other GPU vendors.
43 Comments
View All Comments
jann5s - Wednesday, February 17, 2016 - link
The important thing is that the API is here, and that we already have some SDKs, profiling tools and even a game demo. The performance question will need much more analysis and maturation time before it is really understood. Kudos to Khronos for getting this done.nathanddrews - Wednesday, February 17, 2016 - link
Yes, good for them for rushing this beta out the door, I guess. It's better than nothing, but not being better than DX11 is a mistake I think. If the beta needed more time to make an impressive splash and everyone involved knew this, then they should have waited.As far as the marketing push goes, so far we've seen DX12 demos/betas surpass DX11 counterparts, but then Vulkan comes out and does horribly against DX11. First impressions are the most something... something...
Flunk - Wednesday, February 17, 2016 - link
The SDK needs to be out there for anyone to develop for it, the argument that the first release of an SDK is buggy or a demo that exists just to prove that something works is rather silly. Production code using Vulkan won't be around for a year or so.CajunArson - Wednesday, February 17, 2016 - link
If you had been around when DX11 launched then you would have seen another poster exactly like you insulting DX11 as a failure because mature DX9 titles performed better.This is nothing new and frankly having a new high-end game operational under Vulkan on launch day is actually massively better than what we've seen with previous API launches.
bug77 - Wednesday, February 17, 2016 - link
You do understand this is just the OpenGL engine wrapped into a Vulkan adapter at this point, don't you? Why would you even compare such a contraption to DX11?For the time being, Talos Principle just a testbed for Vulkan rendering, noting more.
nathanddrews - Wednesday, February 17, 2016 - link
"Why would you even compare such a contraption to DX11?"Did you forget what the article above is about? LOL
extide - Wednesday, February 17, 2016 - link
Again, you're confused. This is just a "Look it works" demo, NOT a performance demo!nathanddrews - Wednesday, February 17, 2016 - link
Not confused at all. It is both an article about its operational state and its performance. Throw whatever caveats you want at it, the point is that performance at present is severely lacking. Personally, I find that very disappointing. I also understand that with time and effort, it will perform better, but that doesn't change the fact that its performance right now is weak. Pack up your pitchforks and save them for someone else.extide - Wednesday, February 17, 2016 - link
Yeah but the performance is slow because of the GAME, NOT the API!MamiyaOtaru - Wednesday, February 17, 2016 - link
the performance of *that game* is weak. That game, developed by someone who is not Khronos. Which is in early development anyway. People would put down the pitchforks if you'd stop being such a lumbering Frankenstein's monster of a terrible poster