D3D12_HEAP_TYPE列舉 (d3d12.h)
指定堆積的類型。 常駐時,堆積會位於具有特定CPU快取屬性的特定實體記憶體集區中。
語法
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
常數
D3D12_HEAP_TYPE_DEFAULT 值:1 指定預設堆積。 此堆積類型體驗 GPU 的最大頻寬,但無法提供 CPU 存取。 GPU 可以從此集區讀取和寫入記憶體,而且可能會變更資源轉換屏障。 大部分的堆積和資源預期會位於這裡,而且通常會透過上傳堆積中的資源填入。 |
D3D12_HEAP_TYPE_UPLOAD 值:2 指定用於上傳的堆積。 此堆積類型具有針對上傳至 GPU 而優化的 CPU 存取,但不會體驗 GPU 的最大頻寬量。 此堆積類型最適合 CPU-write-once、GPU-read-once 數據;但 GPU-read-once 比必要更嚴格。 GPU-read-once-or-from-cache 是數據可接受的使用案例;但是,由於 GPU 快取設計和大小不同,因此很難判斷這類用法。 如有疑問,請堅持 GPU 讀取一次定義,或分析將數據複製到_DEFAULT堆積與從_UPLOAD堆積讀取數據之間的許多 GPU 差異。 此堆積中的資源必須使用 D3D12_RESOURCE_STATE_GENERIC_READ 建立,且無法從此變更。 這類堆積的CPU位址通常對CPU讀取沒有效率。 以下是_UPLOAD堆積的典型用法:
對於_UPLOAD堆積而言,下列用法可能不好:
|
D3D12_HEAP_TYPE_READBACK 值:3 指定用於回讀的堆積。 此堆積類型具有針對從 GPU 讀取數據而優化的 CPU 存取,但不會體驗 GPU 的最大頻寬量。 此堆積類型最適合用於 GPU-write-once、CPU 可讀取的數據。 CPU 快取行為是回寫,這有利於多個子快取行 CPU 讀取。 此堆積中的資源必須使用 D3D12_RESOURCE_STATE_COPY_DEST 建立,而且無法從此變更。 |
D3D12_HEAP_TYPE_CUSTOM 值:4 指定自訂堆積。 應用程式可以直接指定記憶體集區和CPU快取屬性,這對於UMA優化、多引擎、多配接器或其他特殊案例很有用。 若要這樣做,應用程式應該會瞭解配接器架構,以做出正確的選擇。 如需詳細資訊,請參閱 D3D12_FEATURE_ARCHITECTURE, D3D12_FEATURE_DATA_ARCHITECTURE、 和 GetCustomHeapProperties。 |
言論
下列 API 專案會使用此列舉:
堆積類型分為兩個類別:抽象堆積類型,以及自定義堆積類型。以下是抽象堆積類型:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
請注意,紋理(不同於緩衝區)不能是堆積類型UPLOAD或READBACK。
要求
要求 | 價值 |
---|---|
標頭 | d3d12.h |