Compute Shader のバッファの種類

NVIDIA DrectCompute Programming Guide
http://developer.download.nvidia.com/compute/DevZone/docs/html/DirectCompute/doc/DirectCompute_Programming_Guide.pdf

Compute Shader のメモリー周りを解説している記事です。
入門に最適です。

DirectX 10 まではシェーダーからリソースの読み込みしか出来ませんでしたが、DirectX 11 からはシェーダーからリソースへの書き込みにも対応しています。レンダーターゲット以外の任意のメモリ領域にも値を書き込むことができるようになっています。

DirectX11 で生成できるバッファの種類には下記のものがあります。RW とついている型はシェーダーからの読み書きが行えます。ついていない型は読み取り専用です。Append/Consume バッファはシェーダー上でスタック (FILO) のようにデータを処理できるバッファです。

  • RWBuffer
  • Texture1D/RWTexture1D
  • Texture1DArray/RWTexture1DArray
  • Texture2D/RWTexture2D
  • Texture2DArray/RWTexture2DArray
  • Texture3D/RWTexture3D,
  • StructuredBuffer/RWStructuredBuffer
  • ByteAddressBuffer/RWByteAddressBuffer
  • AppendStructuredBuffer/ConsumeStructuredBuffer

MSDN の RWTexture2DStructuredBuffer のページは参考になります。

AppendStructuredBuffer/ConsumeStructuredBuffer