hermapi
This WordPress.com site is the cat’s pajamas
D3D12 関連 バージョン管理用メモ
6月 28, 2021
投稿者: : Direct3D のバージョンが訳わからなくなってきたので、調べものしつつメモってます。(更新中)
参照先があちこち散らばってるっぽいのと、ナンバリングが複数あってどれが何やら……。
参照先(増えるかも)
Core interfaces (Direct3D 12 Graphics) – Win32 apps | Microsoft Docs
D3D12.h header – Win32 apps | Microsoft Docs
DirectX-Specs | Engineering specs for DirectX features. (microsoft.github.io)
DXGI overview – Win32 apps | Microsoft Docs
DXGI Reference – Win32 apps | Microsoft Docs
Direct3D feature levels – Win32 apps | Microsoft Docs
Hardware Feature Levels – Win32 apps | Microsoft Docs
DXGI のプログラミングガイド – Win32 apps | Microsoft Docs
DXGI
Factory
- IDXGIFactory
DXGI 1.0
DXGI オブジェクトの生成
> IDXGIAdapter
> IDXGISwapChain
> IDXGIDevice - IDXGIFactory1
DXGI 1.1
> IDXGIAdapter1
> IDXGIDevice1 - IDXGIFactory2
DXGI 1.2
スワップチェイン ステレオ3D対応
> IDXGIDevice2
> IDXGISwapChain1 - IDXGIFactory3
DXGI 1.3
> IDXGIFactory3::GetCreationFlags - IDXGIFactory4
DXGI 1.4
Adapter 列挙( LUID )
WARP Adapter 列挙 - IDXGIFactory5
DXGI 1.5
> DXGI_FEATURE - IDXGIFactory6
DXGI 1.6
Adapter 列挙(GPU優先度指定) - IDXGIFactory7
DXGI 1.6
Notification 登録によるアダプタ列挙状態変化検出
Device
- IDXGIDevice
DXGI 1.0
> GetAdapter - IDXGIDevice1
DXGI 1.1
フレーム遅延設定 - IDXGIDevice2
DXGI 1.2
GPU/CPU同期、リソース再利用 - IDXGIDevice3
DXGI 1.3
グラフィックメモリ使用量削減 - IDXGIDevice4
DXGI 1.5
リソース再利用拡張
Adapter
- IDXGIAdapter
DXGI 1.0 (Vista)
DXGI_ADAPTER_DESC - IDXGIAdapter1
DXGI 1.1 (VistaSP2, 7)
DXGI_ADAPTER_DESC1 - IDXGIAdapter2
DXGI 1.2 (7,8)
DXGI_ADAPTER_DESC2 - IDXGIAdapter3
DXGI 1.3/1.4
D3D12Device1 - IDXGIAdapter4
DXGI 1.6
DXGI_ADAPTER_DESC3
Output
- IDXGIOutput
DXGI 1.0
アダプタ出力 - IDXGIOutput1
DXGI 1.2
アダプタ出力 - IDXGIOutput2
DXGI 1.3
オーバレイサポート確認 - IDXGIOutput3
DXGI 1.3
オーバレイサポート確認 - IDXGIOutput4
DXGI 1.4
オーバレイ色空間サポート確認 - IDXGIOutput5
DXGI 1.5
フルスクリーンサーフェイス - IDXGIOutput6
DXGI 1.6
特定のモニタ機能
> DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
> DXGI_OUTPUT_DESC1
SwapChain
- IDXGISwapChain
DXGI 1.0
スワップチェイン - IDXGISwapChain1
DXGI 1.2
プレゼンテーション拡張 - IDXGISwapChain2
DXGI 1.3
スケーリング、待機時間短縮 - IDXGISwapChain3
DXGI 1.4
バックバッファインデックス、色空間サポート - IDXGISwapChain4
DXGI 1.5
High Dynamic Range (HDR) , Wide Color Gamut (WCG)
Device
- ID3D12Device
Windows 10
コマンドアロケータ、コマンドリスト、コマンドキュー、リソース、パイプラインステートオブジェクト、ヒープ、ルートシグニチャ、サンプラ等多くのリソースを生成する。 - ID3D12Device1
Windows 10 Anniversary Update
パイプラインライブラリ、フェンスコレクション、オブジェクトGPU常駐。 - ID3D12Device2
Windows 10 Creator Update
パイプラインステートストリーム記述からパイプラインステートオブジェクトを生成する。 - ID3D12Device3
Windows 10 Fall Creators Update
GPUヒープの非同期登録、既存オブジェクトのアドレス再使用、ファイルマッピングされたシステムメモリのGPU内保持 - ID3D12Device4
Windows 10 Fall Creators Update
CommandList拡張1 、CommandResource拡張1 、Heap拡張1、保護されたリソースセッション、ReservedResource拡張1 、ResourceAllocationInfo拡張1 - ID3D12Device5
Windows 10 version 1809
レイトレーシング、LifetimeTracker、MetaCommand 、StateObject 、実行時デバイス削除 - ID3D12Device6
Windows 10 version 1809 [19H1]
バックグラウンドプロセスモード - ID3D12Device7
低CPUオーバヘッドなステートオブジェクトの追加、保護されたリソースセッション拡張1 - ID3D12Device8
コミット済みリソース生成拡張2、配置済みリソース拡張1、サンプラフィードバックUAV生成、複製可能フットプリント拡張1、ResourceAllocationInfo拡張2
Command List
- ID3D12CommandList
コマンドリスト基底 - ID3D12GraphicsCommandList
レンダリング用グラフィックスコマンドリスト - ID3D12GraphicsCommandList1
(Device2) Windows 10 Creators Update
プログラム可能なサンプルポジション、アトミックコピー、深度範囲テスト - ID3D12GraphicsCommandList2
(Device3) Windows 10 Fall Creators Update
バッファへの実行時値書き込み - ID3D12GraphicsCommandList3
(Device4) Windows 10 Fall Creators Update
保護されたリソースセッション - ID3D12GraphicsCommandList4
(Device5) Windows 10 version 1809
レイトレーシング対応 - ID3D12GraphicsCommandList5
レイトレーシング VRS対応
Pipeline Library
- ID3D12PipelineLibrary
(Device1)
パイプラインライブラリの管理 - ID3D12PipelineLibrary1
(Device2)
パイプラインライブラリをストリーム記述から読み込めるように
Fence
- ID3D12Fence
CPUと複数GPUの同期用オブジェクト - ID3D12Fence1
(Device3)
共有フェンス
Root Signature
- ID3D12RootSignature
パイプラインに対するリソース範囲を記述するルートシグニチャ - ID3D12RootSignatureDeserializer
version 1.0 用 デシリアライザ - ID3D12VersionedRootSignatureDeserializer
version 1.1 用デシリアライザ
Object
Device Child
Pageable
Resource
- ID3D12Resource
CPU と GPU の読み書き可能な物理メモリまたはヒープ
Command Allocator
- ID3D12CommandAllocator
コマンドアロケータ
Command List
- ID3D12CommandList
コマンドリスト
Command Queue
- ID3D12CommandQueue
コマンドキュー
Command Signature
- ID3D12CommandSignature
コマンドシグニチャ
Descriptor Heap
- ID3D12Heap
物理メモリの割り当て
Heap
- ID3D12DescriptorHeap
ディスクリプタヒープ
Query Heap
- ID3D12QueryHeap
インデックス参照されたクエリヒープ配列の管理。
Pipeline State
- ID3D12PipelineState
パイプラインステート。
Tools
- ID3D12Tools
(Device2)
Protected Session
- ID3D12ProtectedSession
(Device4) - ID3D12ProtectedResourceSession
(Device4) - ID3D12ProtectedResourceSession1
(Device7)
Meta Command
- ID3D12MetaCommand
(Device5)
ハードウェアベンダーに依存しない拡張アルゴリズム
Device Remove Extended
- ID3D12DeviceRemovedExtendedData
(Device5)
実行時デバイス削除対応 - ID3D12DeviceRemovedExtendedDataSettings
(Device5)
実行時デバイス削除対応
Lifetime
- ID3D12LifetimeOwner
(Device5)
Lifetime 通知コールバック関連 - ID3D12LifetimeTracker
(Device5)
Lifetime 通知コールバック関連
State Object
- ID3D12StateObject
(Device5) レイトレーシング用
ドライバに直接与えられシェーダを含む構成状態の可変量 - ID3D12StateObjectProperties
(Device5) レイトレーシング用
ID3D12StateObject のプロパティ値
各種ヘッダファイルの、インタフェースのGUID定義記述のあたりを確認すれば、どのバージョンに何メソッドが登録されているか、纏めやすそうな気配。