Posted on January 31, 2014 by Adam Biessener
Hi everyone –
There has been some confusion about Star Swarm, Mantle, performance on various hardware, and other topics that we’d like to clear up. Here are the best answers we can give to some of the most common questions and complaints we’ve seen since Star Swarm launched to the public yesterday:
Q. Where is the Mantle support you promised?
A. AMD has delayed the Mantle driver beta release to an unspecified date. As soon as it comes out, you can download it from AMD here: http://support.amd.com/en-us/kb-articles/Pages/latest-catalyst-windows-beta.aspx. Mantle support is built into Star Swarm, so the demo is ready to go as soon as the driver is available.
Q. What’s with registration for a free demo?
A. We’ve heard the complaints about the registration process and have decided to strip out the activation process. A new build of Star Swarm will be uploaded to Steam shortly, or very possibly will already be available by the time this message is published.
Q. Why are you calling this a benchmark? I get different results every time I run it.
A: Star Swarm is designed as a total game engine test, not just a graphics test. As such, we have complete AI, flocking, physics, etc. being simulated instead of a pre-canned demo. We believe this adds an important real-world component, and any data gathered from the stress test displays a true game result.
In addition, adding completely deterministic behavior to any engine will create artificial results and stress points, which is something we feel is important to avoid.
However, we are putting together a guide for people interested in getting more consistent numbers. Stay tuned. In the meantime, use the “Follow” scenario for benchmarking purposes – the “Attract” scenario was built to provide random views of the battle.
Q. This is just a marketing tool for AMD; you’ve obviously crippled the DirectX version!
A. We really haven’t; to be perfectly honest we’ve spent more time optimizing for DirectX than we have on Mantle. The fact is that DirectX is conceived and implemented as a single-threaded API, and so a lot of the more significant gains we see thanks to the Nitrous engine’s aggressive multithreading are badly limited by API overhead when we’re using it.
We obviously can’t prove this to the satisfaction of everyone on the Internet, but understand that our primary goal with Nitrous is to make the best engine we can so that we can open the door to the new kinds of games that we want to make (and play ourselves!). An awful lot of the gamers we hope to entertain don’t and won’t have access to Mantle-enabled hardware any time soon, so we’d be making a huge mistake as entertainers and as businesspeople by not supporting or poorly supporting non-Mantle hardware.
Q. Why is my CPU usage imbalanced when running Star Swarm on DirectX?
A. One of the issues we are trying to help Microsoft and their partners with DirectX work on is the serial nature of the DirectX API. The imbalance you are noticing is directly related to this issue. When running an API such as Mantle, which is designed to allow scalability across multiple cores, this issue will disappear. For a more in-depth answer, please see Oxide’s APU 13 presentation regarding this subject: http://www.youtube.com/watch?v=QIWyf8Hyjbg
Q. Why is my GPU utilization not at 100% on DirectX?
A. DirectX and the driver are responsible for interpreting the graphics input from the application and converting that to commands that the GPU can process. Under the current DirectX API, this can be a very CPU-intensive process. If the CPU cannot generate commands faster than the card can process them, then your GPU will not be fully utilized. For a more in-depth answer, please see Oxide’s APU 13 presentation regarding this subject: http://www.youtube.com/watch?v=QIWyf8Hyjbg
Q. Are games using Nitrous going to have the same DirectX performance as Star Swarm?
A. No. We are working closely with all partners involved with DirectX to improve its performance going forward. Star Swarm is intended as a stress test, to ensure that games built on Nitrous will have an opportunity to efficiently use all the hardware available and not be artificially limited by the platform it is running on. In addition, all games will tailor their graphics settings to allow for optimal performance on each platform. Since Star Swarm is a stress test, it makes no distinction between DirectX and other platforms.
Q. Is Star Swarm unfairly targeting DirectX?
A. No. In fact our performance under DirectX is quite good. With a high-end CPU with excellent single-core performance and a high-end GPU, Nitrous can push up to 30,000 batches at 30 frames per second. We believe this number to be quite competitive with any other engine out there. We have also made additional optimizations specific to the DirectX version which are not required on other platforms.
Q. What about deferred contexts? Don’t those help multithreaded applications in DirectX?
A. Until the very latest drivers, we saw equal or even worse performance using deferred contexts in Nitrous. The newest drivers, however, have seen performance gains and so the latest build of Star Swarm can be set to use deferred contexts. Users can enable deferred contexts by modifying the line EnableDeferredContexts=FALSE to =TRUE in their settings files (for more information on customizing settings, see the link below). We have seen some stability issues with deferred contexts enabled, so change the setting at your own risk.
Q. How can I customize Star Swarm with different settings?
A. See this post.