Direct3D 12 はこれまでのメジャーアップデートと違い、
CPU 効率を改善することが目的の一つとなっています。
そのため GPU に対しては極端に大きな機能要求はなく、
基本的には Direct3D 11 世代の GPU でほぼそのまま対応します。
対応する GPU は下記の通りです。
・GeForce : Fermi 以降
・RADEON : GCN 以降
・Intel : Haswell 世代以降
Direct3D 12 ではリソースの扱いが大きく変更されています。
Slot 数のような API に起因する制限は基本的になくなっており、
仕様上はメモリの許す限り割り当てることが可能です。
ただしハードウエアが対応しているかどうかはまた別です。
いくつかの GPU で調べてみました。
RADEON | RADEON | GeForce | GeForce | Intel HD | |
R3 HD8400 | HD 7750 | GTX750Ti | GTX650 | Graphics 4600 | |
GCN 1.1 HSA | GCN 1.0 | Maxwell | Kepler | 7.5th | |
15.200.1023 | 15.200.1023 | 353.30 | 353.30 | 10.18.15.4235 | |
FEATURE_LEVEL | 12_0 | 11_1 | 11_0 | 11_0 | 11_1 |
DoublePrec | true | true | true | true | true |
OMLogicOp | true | true | true | true | true |
MinPrecision | NONE | NONE | NONE | NONE | NONE |
TiledResTier | Tier 2 | Tire 1 | Tier 1 | Tier 1 | — |
ResBindingTier | Tier 3 | Tire 3 | Tier 2 | Tier 2 | Tier 1 |
StencilRef | true | true | false | false | false |
TypedUAVFormat | true | true | true | false | false |
ROVsSupported | false | false | false | false | true |
ConservativeRas | — | — | — | — | — |
GPUVAddrBits | 38 | 31 | 31 | 31 | 31 |
StdSwizzle64K | false | false | false | false | false |
CrossNodeTier | — | — | — | — | — |
CrossAdaptTex | false | false | false | false | false |
VPAndRTArray | false | false | false | false | true |
ResHeapTier | Tier 2 | Tire 2 | Tier 1 | Tier 1 | Tier 2 |
ハードウエアの対応度を表しているのが Tier で、値が大きいほど制限が無くなります。
Tier が低い場合は D3D11 とほぼ同等です。
例えば 1シェーダーあたり 14 CBV, 128 SRV (Texture), 8 UAV, 16 Sampler など。
この中では RADEON (GCN) が D3D12 API への適応度が最も高いことがわかります。
RADEON (GCN) では数値上の制限がなく、メモリの許す限りいくつでも利用できるわけです。
Tier の詳細はこちら (MSDN Hardware Tiers)、表については こちら もご覧ください。
なおドライバは頻繁に更新されているので、今後仕様が変わる可能性があります。
予めご了承ください。
関連エントリ
・Direct3D 12 と ASTC 圧縮 Texture
・CPU 負荷が低い 新しい 3D API
関連ページ
・3D Low overhead API (Low Level API) Metal/D3D12/Vulkan
・Direct3D 12 (DirectX 12) Windows 詳細