ユーザ用ツール

サイト用ツール


d3d:d3d12:texture

文書の過去の版を表示しています。


Texture

Texture の転送

Buffer, Texture の転送もアプリケーション側で管理する必要があります。

GPU 側の VRAM を直接 Map することはできません。 一旦 Map 可能な Buffer (Shared) に書き込み、GPU の Copy 命令 (DMA) で転送を行います。 本来 UMA 環境では Copy しなくても良いはずですが、Texture はメモリアクセス最適化のためにタイリング (swizzle) が必要なのでやはり Copy を行います。

  1. Texture (または GPU 側 Buffer) 作成 (COPY_DEST)
  2. Buffer 作成 (COPY_SRC)
  3. レイアウト取得 (GetCopyableFootprints())
  4. レイアウトにそって Buffer にデータを書き込み
  5. 転送用 CommandList を作成
  6. CommandBuffer で CopyTextureRegion() 等の Copy 命令作成
  7. 転送用 CommandQueue で CommandList を実行
  8. CommandQueue に転送完了 Sginal (Fence) を設定
  9. Fence で転送完了を確認したら不要な Buffer を Release
d3d/d3d12/texture.1442744655.txt.gz · 最終更新: 2015/09/20 19:24 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki