Following 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.

The Talos Principle - 2560x1440 - Ultra Quality

The Talos Principle - 1920x1080 - Ultra Quality

The Talos Principle - 1280x720 - Ultra Quality

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.

Comments Locked

43 Comments

View All Comments

  • ddriver - Wednesday, February 17, 2016 - link

    This is comparing apples to oranges. The engine is not optimized properly for OpenGL.
  • Duckeenie - Wednesday, February 17, 2016 - link

    Sorry I have no time for that like farming nonsense. Consider this, Wine+DirectX likely runs that game faster than Vulkan at this point. So much for close to the metal; we're going to change the world and stick it to the man.
  • Zak - Wednesday, February 17, 2016 - link

    Early DX12 tests were also underwhelming. So much for "close to the metal" revolution IMHO.
  • bcronce - Wednesday, February 17, 2016 - link

    Which tests? I saw some that were nearly 10x faster with DX12 unoptimized than DX11 optimized, from a group that had a strong background in optimizing DX11.
  • fallaha56 - Wednesday, February 17, 2016 - link

    really? dear god it looks awful!
  • Stuka87 - Wednesday, February 17, 2016 - link

    "We’ve also gone ahead and run our two most powerful cards, the GeForce GTX 980 Ti and Radeon R9 285, at 1440p to also showcase a more strictly GPU-bound scenario."

    I understand the point of running a 285 to test it. But to say its the most powerful card you guys have is stretching it a bit?
  • Ian Cutress - Wednesday, February 17, 2016 - link

    I believe that due to time, Daniel ran the tests here, and only has the cards Ryan has sent him, which I think are some of the extra non-reference cards (that were adjusted to reference card clock speeds for this test). Contrary to popular belief, we're not in one single office - editors are dotted all over NA and EU, which makes shipping stuff around very expensive or very slow.

    Vulkan drivers and rendering paths are still in their early days/betas, hence why we're seeing it perform behind DX11, so there's no need to stretch the gamut with a dozen or two dozen cards here.
  • Kontis - Wednesday, February 17, 2016 - link

    Vulkan could be used to easily outperform Dx11 (e.g. using draw calls bottlenecking) with a driver in an alpha stage.

    The wrapper used in Talos will most likely not outperform DX11 even in 5 years with mature driver.

    tl;dr it's not a driver problem, it's a game engine problem (quick port made by one guy in 3 months for a completely new API).
  • extide - Wednesday, February 17, 2016 - link

    That was just the fastest AMD card the writer had available to him at the time.
  • TristanSDX - Wednesday, February 17, 2016 - link

    Vulkan is mistake, it won't be faster. This slowness is not caused by driver, but by game. Driver is thin and easy to write. Driver in DX11 is highly optimized, and use lot of complex code to perform convoluted tricks to make rendering as fast as possible. With low level access to hardware, all of this complex code must be moved to game or engine. This is enormous task, as this code are millions of lines, and only biggest teams will be able to do this.

Log in

Don't have an account? Sign up now