d3d:d3d12:texture
文書の過去の版を表示しています。
Texture の転送
Texture の転送
Buffer, Texture の転送もアプリケーション側で管理する必要があります。
GPU 側の VRAM を直接 Map することはできません。 一旦 Map 可能な Buffer (Shared) に書き込み、GPU の Copy 命令 (DMA) で転送を行います。 本来 UMA 環境では Copy しなくても良いはずですが、Texture はメモリアクセス最適化のためにタイリング (swizzle) が必要なのでやはり Copy を行います。
- Texture (または GPU 側 Buffer) 作成 (COPY_DEST)
- Buffer 作成 (COPY_SRC)
- レイアウト取得 (GetCopyableFootprints())
- レイアウトにそって Buffer にデータを書き込み
- 転送用 CommandList を作成
- CommandBuffer で CopyTextureRegion() 等の Copy 命令作成
- 転送用 CommandQueue で CommandList を実行
- CommandQueue に転送完了 Sginal (Fence) を設定
- Fence で転送完了を確認したら不要な Buffer を Release
d3d/d3d12/texture.1442744725.txt.gz · 最終更新: 2015/09/20 19:25 by oga