DirectCompute - CUDA - OpenCL are they used?

Started by
10 comments, last by FreneticPonE 11 years, 1 month ago

I also found the following:

http://www.tomshardware.com/reviews/directcompute-opencl-gpu-acceleration,3146-5.html

"Civilization 5
Civilization 5 uses DirectX 11 and DirectCompute to leverage a variable bit rate texture codec algorithm. The algorithm is so efficient that 2 GB of leader textures compress down to less than 150 MB of disk storage.

DiRT 3
DiRT 3 employs DirectCompute for its high-definition ambient occlusion (HDAO) effect. Unfortunately, there is no equivalent effect in the game based on pixel shading, so we can’t compare the two directly.

Metro 2033
The advanced depth of field (DOF) effect in Metro 2033 needs three rendering passes. Two of these employ pixel shading, while the third uses DirectCompute."

Advertisement

D3D11 compute shaders have definitely been used in shipping games. For most part they are only used for purely graphical features, like full-screen effects and times deferred rendering (used in Battlefield 3). The reason for this is that graphics is typically the easiest and most obvious use-case for compute, since graphics operations are generally well-suited to the massively-parallel model used on GPU's. Graphics operations also don't have to be synchronized with the CPU and read back to system memory, which is expensive on a typical PC architecture. Another reason for this is that PC games still need to target sub-DX11 GPU's, so it probably doesn't make sense to require DX11 functionality for gameplay-centric features.

As for CUDA, several games have made use of PhysX to run various cosmetic physics simulations on the GPU. RAGE also supported using CUDA for run-time transcoding of texture data.

I'm not an expert on OpenCL, but I would suspect that it's not getting much use in games. From what I understand it currently has a lot of issues with regards to getting a OpenCL program to run consistently on a wide range of hardware/drivers.

You can easily get away with DX10 as a minimum requirement today, that will at least give you compute shaders, though limited.

One of the reasons I suspect that graphical niceties have been the primary use is consoles, the gameplay needs to run on consoles too, which obviously don't have Compute Shaders. So sticking with a few graphical extras on the PC version doesn't hinder anything.

Still, I wonder what you could use it for, besides some physics acceleration ala PhysX. Regardless, I don't doubt we'll see DX11 cards as the new minimum, so compute shaders should be relevant to look into.

This topic is closed to new replies.

Advertisement