ユーザ用ツール

サイト用ツール


d3d:d3d12

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
d3d:d3d12 [2015/06/20 21:36] – [Direct3D 12 (DirectX 12)] ogad3d:d3d12 [2015/06/20 21:39] (現在) – 削除 oga
行 1: 行 1:
-====== Direct3D 12 (DirectX 12) ====== 
- 
- 
-  * [[https://msdn.microsoft.com/en-us/library/windows/desktop/dn903821(v=vs.85).aspx|MSDN Direct3D 12 Graphics]] 
- 
- 
-===== GPU の対応 ===== 
- 
- 
-^                                                 ^ RADEON R3 8400 ^ GeForce 750 ti ^ HD 4600    ^ 
-^            :::                                  ^ GCN            ^ Maxwell        ^ (Haswell)  ^ 
-| D3D12_FEATURE_LEVELS                            | 12_0           | 11_0           | 11_0       | 
-| DoublePrecisionFloatShaderOps                   | true           | true           | true       | 
-| OutputMergerLogicOp                             | true           | true           | false      | 
-| MinPrecisionSupport                             | NONE           | NONE           | NONE       | 
-| TiledResourcesTier                              | Tier 2         | Tier 1         | 0          | 
-| ResourceBindingTier                             | **Tier 3**     | Tier 2         | Tier 1     | 
-| PSSpecifiedStencilRefSupported                  | true           | false          | false      | 
-| TypedUAVLoadAdditionalFormats                   | true           | true           | true       | 
-| ROVsSupported                                   | false          | false          | false      | 
-| ConservativeRasterizationTier                   | 0              | 0              | 0          | 
-| MaxGPUVirtualAddressBitsPerResource             | 38             | 31             | 31         | 
-| StandardSwizzle64KBSupported                    | false          | false          | false      | 
-| CrossNodeSharingTier                            | 0              | 0              | 0          | 
-| CrossAdapterRowMajorTextureSupported            | false          | false          | false      | 
-| VPAndRTArrayIndexFromAnyShaderFeedingRaster..   | false          | false          | true       | 
-| ResourceHeapTier                                | Tier 2         | Tier 1         | Tier 1     | 
- 
- 
- 
-===== API ===== 
- 
- 
- 
- 
-==== Descriptor ==== 
- 
-リソースの情報を格納した構造体。 
-GPU メモリに確保され、GPU がリソースを参照するために用いられます。 
- 
-Descriptor を格納するメモリは DescriptorHeap から確保されます。 
-DescriptorHeap は連続領域で、GPU にテーブルとして渡します。 
- 
-Descriptor が必要なリソースは下記の通り 
- 
-  * ConstantBufferView 
-  * ShaderResourceView (Texture) 
-  * UnorderedAccessView 
-  * Sampler 
- 
- 
- 
- 
-==== ID3D12RootSignature ==== 
- 
-リソースとシェーダーの対応付けを行うためのテーブルを定義します。 
-C言語の struct のようなもので、レジスタとのバインド状態を指定します。 
-あくまで対応付けのテンプレートであり、実際のバインド状態そのものは CommandList に入ります。 
- 
-RootSignature のサイズは固定で、最大 16エントリ (DWORD) のみ。 
- 
-  * 1 DWORD : DescriptorTable 
-  * 4 DWORD : Descriptor 直接 
-  * 1 DWORD : Constant (int 32bit) 
- 
-直接 Descriptor を格納すると 4個しか入らないので DescriptorTable と組み合わせて使う。 
- 
-Descriptor/DescriptorTable で指定したリソースは任意のレジスタにバインドできます。 
- 
-  * b0~ CBV ConstantBufferView 
-  * t0~ SRV ShaderResourceView 
-  * u0~ UAV UnorderedAccessView 
-  * s0~ Sampler 
- 
- 
- 
- 
-==== Texture の転送 ==== 
- 
-Buffer, Texture の転送もアプリケーション側で管理する必要があります。 
- 
-GPU 側の VRAM を直接 Map することはできません。 
-一旦 Map 可能な Buffer (Shared) に書き込み、GPU の Copy 命令 (DMA) で転送を行います。 
-本来 UMA 環境では Copy しなくても良いはずですが、Texture はメモリアクセス最適化のためにタイリング (swizzle) が必要なのでやはり Copy を行います。 
- 
- 
-  - Texture (または GPU 側 Buffer) 作成 (COPY_DEST) 
-  - Buffer 作成 (COPY_SRC) 
-  - レイアウト取得 (GetCopyableFootprints()) 
-  - レイアウトにそって Buffer にデータを書き込み 
-  - 転送用 CommandList を作成 
-  - CommandBuffer で CopyTextureRegion() 等の Copy 命令作成 
-  - 転送用 CommandQueue で CommandList を実行 
-  - CommandQueue に転送完了 Sginal (Fence) を設定 
-  - Fence で転送完了を確認したら不要な Buffer を Release 
- 
- 
- 
- 
- 
- 
- 
- 
  
d3d/d3d12.1434803813.txt.gz · 最終更新: by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki