Share via


緩衝區內的子位置

緩衝區具有 D3D12 中所有必要功能,應用程式才能將大量的暫時性資料從 CPU 傳輸到 GPU。 本節涵蓋使用和管理資源和緩衝區的四個常見案例。

與 D3D11 類似,相較于 D3D11 中的動態/預備資源,在 D3D12 中配置緩衝區時,D3D12 中的應用程式仍然需要宣告記憶體使用量,但在 D3D12 中,開發人員對記憶體使用量有更大的彈性和更緊密的控制。 緩衝區透過子位置,具有低階記憶體管理所需的所有功能。

本節內容

主題 描述
上傳不同類型的資源
示範如何使用一個緩衝區,將常數緩衝區資料和頂點緩衝區資料上傳至 GPU,以及如何適當地子配置資料並將資料放在緩衝區內。 使用一個單一緩衝區會增加記憶體使用量彈性,並提供更嚴格控制記憶體使用量的應用程式。 同時顯示上傳不同資源類型之 D3D11 和 D3D12 模型之間的差異。
透過緩衝區上傳紋理資料
上傳 2D 或 3D 紋理資料類似于上傳 1D 資料,不同之處在于應用程式需要更仔細注意與資料列間距相關的資料對齊。 緩衝區可以正交且同時從圖形管線的多個部分使用,而且非常有彈性。
透過緩衝區讀取資料
從 GPU 讀取資料,例如擷取螢幕擷取畫面,牽涉到使用讀取回堆積。
以柵欄為基礎的資源管理
示範如何透過柵欄追蹤 GPU 進度來管理資源資料生命週期。 記憶體可以有效地與柵欄搭配使用,以仔細管理記憶體中可用空間的可用性,例如在上傳堆積的通道緩衝區實作中。

記憶體管理