CryTek On DirectX12 and Vulkan

crytek

Crytek’s CTO, Rok Erjavec, has just given an interview to DSOgaming a few days ago (May 20th) where he discusses DirectX12 and Vulkan. So far CryEngine is already supporting DirectX12, while obvious performance benefits were not obviously seen. Since DirectX12 is similar to Vulkan, there’s an extract that’s worth reprinting here, because we often hear “Vulkan is going to make games faster”, yet the picture even for DX12 is far from being black and white:

Rok Erjavec: As with every new technology stack, there’s a learning curve that we’re currently seeing and working through. DX10-11 pipelines have had the benefit of multiple years of focused driver optimization and work-arounds specific to their workflow, and the paradigm shift that comes with DX12 effectively erases some of the benefits of this legacy.

For him, though, the applications of Low-level APIs go beyond getting better performance, and it brings on the table more possibilities for experimentation:

Rok Erjavec: There’s a wealth of academic research that was ill-suited to practical application through a combination of hardware and software abstraction limitations. With the latter getting out of the way, and hardware flexibility continually improving – more than things just getting iteratively “prettier” – we’re looking at a rise in experimentation again. In a way, the industry has circled back to a place similar to where we were in the early-mid 90s, when software rasterization didn’t really impose any restraints on creativity beyond the 17ms barrier.

The matter of Vulkan was mentioned as well:

Rok Erjavec: The current trajectory of Vulkan provides a path to reach PC users across all the widely used OS platforms, including legacy Windows versions, as well as mobile devices, so if I was shipping a title in 2017 or beyond, Vulkan looks like an appealing choice.

If we implemented Vulkan in CRYENGINE, we wouldn’t have to choose one, as titles built with our tech would work seamlessly with both, and thus leave this choice with the users instead.

So there’s two take-aways here. One, Crytek does not have a Vulkan renderer that is planned. Or if it’s planned, it is not going to be ready anytime soon. That may be a little disappointing to hear, but since DirectX12 has been available for a longer time, it’s natural that it takes precedence. Second, Vulkan does cover some other use cases and remains an attractive API for multiple platforms – including Windows 7, since DX12 is not available for anything below Windows 10 – but down the road the share of Windows 10 is going to increase anyway, and unless you make a game that’s not just for PC/Consoles, Windows is going to remain your main target/bread for a while.

AAA developers with PC focus legacy are probably still weighting in the effort of optimizing their engines for DX12 versus targeting broader API like Vulkan. We’ll see how the situation changes later in 2016.

By the way, this probably means that any Linux client for Star Citizen would be probably running on OpenGL, unless they expect to wait for Vulkan in CryEngine for the Linux port to become a reality.


BoilingSteam shows no ads whatsoever and we strive to provide you with a clean and pleasing reading experience. If you enjoyed this article and are interested in contributing in some way (guest articles for example), do not hesitate to drop us a message via the contact page. We have also started a Patreon Campaign since February 2017 - please consider donations so that we can increase our activity and cover more topics and more games! In order to follow what we do, we recommend you sign up to our newsletter (No Spam!), or our RSS feed.

Related Posts

Ekianjo

6 Comments

  1. Star Citizen won’t be running on OGL. That’s definite. It’s not worth the work implementing an OGL renderer.
    CIG is implementing a DX12 renderer first and then a Vulkan renderer after that, which is used for the Linux version of SC.
    They said, that the Vulkan Implementation would be pretty easy once the DX12 one is done.

    • Do you have any source saying it wont run on OpenGL ? Because so far CryEngine does not support Vulkan as far as I know…

      • Sorry. I answered in the main thread.
        This one is just so you get your notification mail. 🙂

  2. I just found one: https://www.youtube.com/watch?v=XD9_L5o4mhQ
    It’s mentioned at 12:30, but it was discussed at a lot of other occasions. There a ton of information CIG puts out that you’ll never find it again.

    The reason for it is, because SC isn’t using the CryEngine anymore basically. They changed so many things, since they startet SC, that they basically created their own engine which in the process broke the OpenGL support.
    Right now they are refactoring the engine and making it ready for the new APIs. According to Chris it’s pretty easy to switch them out or implement both of them once the engine is properly refactored. Right now, though it’s in a pretty bad shape, with a lot of thread interdependent flags, which prevents it from being parallelized and stuff like that.
    But they’ll get it done and when they do, then we’ll see which API they are going to implement first. In one of thee last interviews Chris said it might even be Vulkan.

Leave a Reply

Your email address will not be published. Required fields are marked *