DirectX 11 to offer Compute Shaders for DX10 hardware

X-bit Labs has some info about the Compute Shaders features of DirectX 11. The site reports this GPGPU functionality will also be available for current DirectX 10 and DirectX 10.1 hardware:

General-purpose processing on graphics processing units (GPGPU) is gaining popularity slowly, but surely. Unfortunately, at present there is only one standard application programming interface – OpenCL - that supports all graphics chips available today. But apparently, DirectX 11, which will enable GPGPU, physics, artificial intelligence, etc. programming via compute shaders, will also be able to take advantage of present GPUs, albeit with some limitations.

In order to popularize compute shaders (CS) among developers, the DirectX 11 includes not only compute shaders 5.0, but also compute shaders 4.0 (for Direct X10 hardware) and 4.1 (for DirectX 10.1 hardware), which are not supported by DirectX 10. Compute shaders 4.0/4.x have a number of limitations compared to version 5.0, including maximum number of threads per group (768), thread group shared memory (16KB vs. 32KB in CS 5.0), absence of atomic operations or append/consume and so on. CS 5.0 will also offer better interaction with graphics pipeline (e.g., it can output to textures), double precision and so on.

This is one key factor to know. But there is more to the "will DX11 be a hit" puzzle than just this.

First, it has to be useful on a lot of hardware, future and existing, which the above article answers. It will be very useful on older DX10 hardware, and super useful on DX11 hardware.

Second, how hard is it for a developer to program once and use both possible models, DX11 for DX11 and DX11 for DX10/10.1 and get simple working output code for both markets. If this is easy - then DX11 should be a good hit.

It has to work on a lot of hardware, and it has to be easy for a Dev to make one program and have outputted compiled code that works on any platform, that also runs fast.