緩衝區內的子配置
緩衝區具有 D3D12 中所有必要功能,可讓應用程式將大量的暫時性數據從 CPU 傳輸至 GPU。 本節涵蓋四個常見案例,以使用和管理資源和緩衝區。
與 D3D11 類似,相較於 D3D11 中的動態/預備資源,在 D3D12 中配置緩衝區時,D3D12 中的應用程式仍然需要宣告記憶體使用量,但在 D3D12 中,開發人員對記憶體使用量擁有更大的彈性和更嚴格的控制。 緩衝區,透過子配置,具有低階記憶體管理所需的所有功能。
在本節中
主題 | 描述 |
---|---|
上傳不同類型的資源 |
示範如何使用一個緩衝區,將常數緩衝區數據和頂點緩衝區數據上傳至 GPU,以及如何適當地子配置數據,並將數據放在緩衝區內。 使用一個單一緩衝區會增加記憶體使用量彈性,並讓應用程式更嚴格地控制記憶體使用量。 同時顯示上傳不同類型的資源 D3D11 和 D3D12 模型之間的差異。 |
透過緩衝區上傳紋理數據 |
上傳 2D 或 3D 紋理數據類似於上傳 1D 數據,不同之處在於應用程式需要更加注意與數據列間距相關的數據對齊。 緩衝區可以從圖形管線的多個部分進行正交和並行使用,而且非常有彈性。 |
透過緩衝區讀取數據 |
從 GPU 讀取回數據,例如擷取螢幕快照,牽涉到使用讀取回堆積。 |
Fence-Based 資源管理 |
示範如何透過圍欄追蹤 GPU 進度來管理資源數據生命週期。 記憶體可以有效地與柵欄搭配使用,以仔細管理記憶體中可用空間的可用性,例如在上傳堆積的通道緩衝區實作中。 |