GPU Compute In Games: A Work In Progress
“There is nothing magic about DirectCompute that says it will require more performance,” says DICE’s Johan Andersson. “It can either be used to improve performance, if it is a good fit for the use case/algorithm, or it can be used to implement effects/techniques that aren’t possible or practical to implement on the CPU or on the GPU graphics pipeline. We use it for optimizing the worst-case performance of our levels, and that worst case is when we have a lot of light sources, especially together with MSAA. So, if DirectCompute gains us performance in the worst case but reduces performance in the best case, as in a simple level with very few dynamic light sources, that is still better for the overall user experience.”
This makes great sense. Nothing is ever free, and DirectCompute is no cure-all. There are trade-offs. But if the net result is an overall improvement in the user experience with only a slight to moderate penalty under some circumstances, that’s a good deal.
Unfortunately, today’s consoles and the many DirectX 10-era GPUs spread across the market don’t support DirectCompute. This explains part of why there hasn’t been a mad rush to get DirectCompute-based features running in as many apps as possible. Other, more universal features are simply in higher demand. Still, it’s only a matter of time, and our tests show that there’s plenty to anticipate in games, mostly related to visual fidelity.
“Going forward,” adds Andersson, “there are many other post-processing, lighting, rendering, and simulation techniques—for example water and particle simulation—that we are interested in experimenting with DirectCompute for. Our goal is to enable both new game play experiences as well as improving performance even further.”
Naturally, DICE isn’t alone.
“Over the next few years, DirectCompute is likely to play a large part in the way we render our scenes,” says Codemasters’ Gareth Thomas. “There are several Holy Grails of real-time rendering all graphics programmers would like to see solved. For example, decoupling material complexity from lighting complexity is one. Global illumination, or at least a practical approximation to it, is another, along with order-independent transparency. Then there are all the techniques which just require massive computation and are no longer practical to execute on a quad-core CPU, such as cloth, water, smoke, and so on. The most exciting thing for me is that everyone is looking to DirectCompute and OpenCL for the next jump in technology, and people will come up with techniques that I haven’t even thought of yet.”
So stayed tuned—the best is yet to come. Speaking of which, we’ll be back soon with the next part of our foray into heterogeneous computing and what it can do for your everyday productivity and compression needs.