D3D12_HEAP_TYPE列舉 (d3d12.h)
指定堆積的類型。 當駐留時,堆積會位於具有特定 CPU 快取屬性的特定實體記憶體集區中。
Syntax
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 寫入一次、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 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應