私はID3D12Resource::Map
メソッドを使用してGPUリソースを更新しています。それが最も効率的な方法ですか?どのような選択肢が存在しますか?ヒープタイプのアップロードでGPUリソースを更新する最適な方法は何ですか?
0
A
答えて
4
アップロードヒープリソースには、読み込みに関連するコストがあります。これは既定のリソースよりも高くなります。
定数バッファの場合、これは一般的には良いです(ライトワンス/リードワンスシナリオのように)が、他の場合(大きな頂点/インデックスバッファ)は一般的に好ましくありません。
一般的なアプローチでは、アップロードヒープ内に1つ、デフォルトヒープ内に1つのリソースを作成し、アップロードリソースにデータをコピーしてから(前述のマップを使用して)、CopyResourceまたはCopyBufferRegionをデフォルトのリソースに追加します。
ResourceBarrierと移行状態を使用して、リソースコピーの前後に正しいリソース状態が設定されていることを確認してください。
コピーを呼び出す前に、リソースはコピーの前にD3D12_RESOURCE_STATE_COPY_DESTになければなりません。また、リソースに依存する読み取りフラグのいずれかが必要です。
GPUコピーのコピーコマンドキューを使用することができます(ダイレクトコマンドリストでの実行を避けることができます)が、リソースを使用する前にコピーが完了していることを確認する必要があります(フェンスを使って)。特に場合は(あなたが使用することができますので、組み合わせるメモリの書き込み -
マルチエンジンは、あなただけ_writing_リソースにある場合、あなたは直接書き込み、およびアップロードを使用していないことにより、より高速なパフォーマンスを得ることがありますが、MSDN here
関連する問題
- 1. GPUリソースをコードで共有する
- 2. ipythonのkerasでGPUリソースをspyderで解放するには?
- 3. MARAテーブルを更新する最適なソリューションは何ですか?
- 4. リアプロダクションアプリでローカルに保存されたテーブルデータを更新する最も最適な方法は何ですか
- 5. ライブウェブサイトのサムネイルを最適化する最適な方法は何ですか?
- 6. .iniファイルのキー値を変更する最適な方法は何ですか?
- 7. iOSのPDFインタラクティブフォームフィールドを変更する最適な方法は何ですか?
- 8. リアルタイムで更新される動的オブジェクトを設計する最適な方法は何ですか?
- 9. Rails 3:非常に大きなテーブルの列を更新する最適な方法は何ですか
- 10. UITableViewCellをカスタマイズする最適な方法は何ですか?
- 11. シングルトンを作成する最適な方法は何ですか?
- 12. アニメーションを駆動する最適な方法は何ですか?
- 13. 秒単位でSQLデータを更新する最適な方法
- 14. ストアドプロシージャを使用して整数を挿入または更新する最適な方法は何ですか?
- 15. 非トランザクションタスクの結果に基づいてデータベーステーブルを更新する最適な方法は何ですか
- 16. Excelファイルを使用してデータを更新する最適な方法は何ですか
- 17. mnesiaスキーマを更新する最も簡単な方法は何ですか?
- 18. ウェブサイトでストリームオーディオに最適な方法は何ですか
- 19. Asp.netの_DoPostBack javascriptメソッドの最適な方法は何ですか
- 20. link_to_functionのリファクタリングに最適なUJSの方法は何ですか?
- 21. JavaのファイルIOの最適な方法は何ですか
- 22. haskellプラットフォームを最新のものに更新する最もスムーズな方法は何ですか?
- 23. UITableViewの最適な保存方法は何ですか?
- 24. 複数のデータフレームに最適な方法は何ですか?
- 25. wpfでクラスのプロパティを検索する最適な方法は何ですか?
- 26. Rails 3.1でファイルをアップロードする最適な方法
- 27. Winforms - スレッドセーフな方法でプロパティを更新する最も簡単な方法は何ですか
- 28. この更新プログラムの最適な解決策は何ですか
- 29. ソフトウェアのカタログ作成アプリケーションに最適な更新メカニズムは何ですか?
- 30. C#で複数の匿名の型リストを返す最適かつ最適な方法は何ですか?
に記述されていますあなたはこれを頻繁にやっています)。これは、シナリオの最適化/確認が必要なものの1つです。 – cmaughan
@cmaughanこれはバッファの場合にのみ当てはまると言えます。そのようにテクスチャをマップする方法はありません。 – galop1n
@ galop1n Nope;あなたもテクスチャでそれを行うことができます。しかし、もう一度、より速いプロファイルを作成する必要があります。 – cmaughan