The Developer Perspective: Crytek
Crytek is nearly always at the forefront of graphics technology development, so we spoke to its research and development principal graphics engineer, Tiago Sousa, about how Crytek views the DirectX 12 announcement, and what it would like to see from the API when it debuts at the end of 2015
PCTA: What was your initial reaction to the DirectX 12 announcement?
Crytek: It was great finally seeing a new iteration of DirectX. We’ve been asking about it for quite some time since; from a developer perspective, it had been stagnating for a few too many years. The expected updates from DX12 are in sync with our ongoing work.
PCTA: What will the performance improvements enable you to do?
Crytek: The main concern is improving throughput on the CPU side, and adding good multi-threading support alongside fancy new rendering features. Improvements on the graphics side, together with the release of the new consoles (which means less in the way of developer constraints), will make it easier to tackle the long-term problems that real-time rendering has been struggling with in recent years.
PCTA: How will your development process benefit from multiple CPU threads?
Crytek: As a basic example, if a developer has an 8-core machine, but only uses one core, and also doesn’t use instruction-level parallelism, that developer is using less than 10 per cent of the power the CPU provides him.
The way to move forward is – and has been for a number of years – to go massively parallel, but also to optimise for throughput, and APIs such as DX12 will see this coming to the PC market on the rendering side. This isn’t a silver bullet though; rendering will become cheaper on the CPU side, but then there’s the other systems that also need to be on a par with it, such as game code, physics, animation, GPU rasterisation itself and so on, otherwise performance will still remain limited on those particular systems.
PCTA: Microsoft stated Direct 3D 12 would enable more complex scenes. How would you approach adding complexity to scenes?
Crytek: The extra CPU performance means developers will be able to add more detail into scenes for a fraction of the performance cost – before, most DX developers were restricted to between 2-4K draw calls, but that number will now be able to go up quite a bit. This will have one great, really positive side effect: allowing for an easier and faster art workflow. Before, artists had to batch together geometry and do their best to minimise draw calls, but now they’ll be able to become more creative and less restricted in the way they set up levels and create assets.
PCTA: How will getting ‘closer to the metal’ affect Crytek’s approach to development?
Crytek: In our case, we’ve relied on having a DirectX 11-style front end in recent years, and each platform having its own backend implementation (GCM, DX9 and so on). However, retrofitting new [close to metal] APIs to match such an approach wouldn’t make sense for various reasons. In the end, it means more effort for initial iterations, in terms of refactoring, to ensure we can extract the best performance.
PCTA: Microsoft described the Direct 3D API as ‘console-like,’ and much of the focus of DX12 seems to be on the Xbox One. As a developer whose primary focus has been the PC, how do you feel about this?
Crytek: It’s great that DX12 will be on different platforms, since we try to share as much work as possible across many platforms, to minimise QA effort and the time spent across different implementations. In the end everyone wins; it’s less of a burden and less time wasted for developers.
PCTA: With much of DX12 still under wraps, is there anything you would particularly like to see it support?
Crytek: Feature-wise, we’ve been in touch with Microsoft since DX12’s inception, and Microsoft has been really keen on listening to developers, which is great. I don’t think I can disclose information currently, but a lot of features that we’ve been requesting for many years will finally be in there. One feature we would really like to see is DX12 on Windows 7, which would offer a much bigger market share for developers to aim at.
We would also like better debugging and profiling tools. I’ve been preaching for quite some time that PC gaming tools are lagging behind in comparison to tools available on the previous console generation, specifically the Xbox 360 and PS3.
Most of the PC tools aren’t usable on big, real-world projects, or they’re IHV-specific (independent hardware vendor), so developers have to use one tool for one IHV, and a different one for another – it’s a big waste of time.
From my point of view, effort developing such tools could be put into developing a single one that actually works and makes everyone happy. I would like to encourage developers, Microsoft and other IHVs to join in and make Crytek’s soon-to-be open source Render Doc an industry standard across multiple platforms.