d3d:d3d12:descriptor
文書の過去の版を表示しています。
RootSignature と Descriptor
RootSignature と API
Shader にパラメータを渡す方法のまとめ。
Type | Descriptor Heap | 設定 API | 描画時に設定する内容 | Reg | 設定個数 | 消費Cost | ||
---|---|---|---|---|---|---|---|---|
CBV | CBV_SRV_UAV | Descriptor Table | CommandList::SetGraphicsRootDescriptorTable() | 先頭の GPU Descriptor Handle | b | 複数 | 1 | |
CBV | - | Root Descriptor | CommandList::SetGraphicsRootConstantBufferView() | Resource GPU Address | b | 1 | 2 | |
CBV | - | Root Constants | CommandList::SetGraphicsRoot32BitConstants() | Constant Value | b | 1 | 1x個数 | |
SRV | CBV_SRV_UAV | Descriptor Table | CommandList::SetGraphicsRootDescriptorTable() | 先頭の GPU Descriptor Handle | t | 複数 | 1 | |
SRV | - | Root Descriptor | CommandList::SetGraphicsRootShaderResourceView() | Resource GPU Address | t | 1 | 2 | Raw/Structured のみ |
UAV | CBV_SRV_UAV | Descriptor Table | CommandList::SetGraphicsRootDescriptorTable() | 先頭の GPU Descriptor Handle | u | 複数 | 1 | |
UAV | - | Root Descriptor | CommandList::SetGraphicsRootUnorderedAccessView() | Resource GPU ADdress | u | 1 | 2 | Raw/Structured のみ |
Sampler | SAMPLER | Descriptor Table | CommandList::SetGraphicsRootDescriptorTable() | 先頭の GPU Descriptor Handle | s | 複数 | 1 | |
Sampler | - | Static Sampler | Device::CreateRootSignature() | s | 複数 | - | 動的に変更できない | |
RTV | RTV | Descriptor Table | CommandList::OMSetRenderTargets() | CPU Descriptor Handle | 複数 | - | ||
DSV | DSV | Descriptor Table | CommandList::OMSetRenderTargets() | CPU Descriptor Handle | 1 | - |
- CBV, SRV, UAV, Sampler いずれも Descriptor Table を使う方法、使わない方法両方用意されています。
- ただし SRV, UAV は Descriptor Table 以外は機能制限があります。
- CBV は、DescriptorTable を使う場合、直接 Root Descriptor に設定する場合、値を RootSignature に直接格納する場合の 3通りの方法があります。
Core i7-4790K | Jaguar | N3150 | |||||
---|---|---|---|---|---|---|---|
Intel | GCN 1.0 | Kepler | Maxwell1 | Maxwell2 | GCN1.1 | Gen8 | |
const32bit | 18.33 | 9.88 | 11.26 | 8.25 | 13.35 | 14.80 | 36.61 |
root desc | 18.24 | 14.39 | 10.00 | 7.48 | 13.40 | 17.45 | 36.74 |
global handle | 18.44 | 11.70 | 9.00 | 8.06 | 12.80 | 15.48 | 33.74 |
buf shared | 18.25 | 11.69 | 9.90 | 7.44 | 13.31 | 14.72 | 35.53 |
cached | 10.76 | 11.70 | 13.50 | 12.60 | 12.51 | 10.48 | 21.20 |
Dynamic Heap | 25.66 | 35.54 | 15.96 | 15.00 | 15.18 | 133.73 | 79.77 |
Shared RS | 17.45 | 11.72 | 14.88 | 14.87 | 14.88 | 13.08 | 33.14 |
Separate RS | 18.25 | 11.70 | 10.25 | 9.50 | 12.20 | 13.25 | 33.66 |
Bundle const32bit | 18.67 | – | 9.00 | 8.75 | 9.87 | – | 35.50 |
Bundle root desc | 20.55 | – | 9.66 | 9.66 | 9.90 | – | 36.96 |
Bundle copy | 42.62 | – | 34.47 | 17.11 | 15.00 | – | 67.93 |
Bundle cached | 20.35 | – | 8.23 | 8.41 | 9.90 | – | 35.22 |
Bundle2 | 21.26 | 28.28 | 15.36 | 15.28 | 15.50 | 90.24 | 66.38 |
d3d/d3d12/descriptor.1442733073.txt.gz · 最終更新: 2015/09/20 16:11 by oga