問題タブ [directx-12]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
directx-12 - ヒープタイプのアップロードで GPU リソースを更新する最良の方法は何ですか?
メソッドを使用しID3D12Resource::Map
て GPU リソースを更新しています。それが最も効率的な方法ですか?どのような代替案が存在しますか?
directx - 間接コマンド バッファを展開すると、AMD GPU で ExecuteIndirect がクラッシュする
インスタンスの描画に ExecuteIndirect を使用しようとしています。
これが私のコードです:
間接コマンド バッファの追加:
間接コマンド バッファ データを更新します。
最後に、executeindirect
SceneManager を使用してシーンをロードします。ゲームオブジェクトがレンダリング オブジェクトの場合。私のシステムは AppendIndirectCommandBuffer() を呼び出し、データを間接コマンド バッファーにコピーします。
シーンの初期化後にゲームオブジェクトのクローンを作成しない場合、ExecuteIndirect() はうまく機能します。
そして、実行時に(Update()で)ゲームオブジェクトのクローンを作成しようとします。
私のシステムは AppendIndirectCommandBuffer() を再度呼び出して間接コマンド バッファーのサイズを変更し、新しいデータをバッファーにコピーします。
ゲームオブジェクトのクローンを数秒間作成した後、システムに不具合が生じ始め、R9 380 で TDR が発生します。
ただし、WARP と Intel GPU の両方で適切に動作します。
理由はわかりません:(。
この問題を解決するには?どうしても間接画を上手く使いこなしたい。
ありがとう!
アップデート
アップロード ヒープ リソースは、D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT に遷移できません。
デフォルト タイプのヒープを作成し、アップロード ヒープを使用してデータをそこにコピーします。
デバッグ層を試しましたが、そこからエラーは返されません。GBV を試してみましたが、エラーは 2 つしかありませんでした。
そして警告:
次の関数を呼び出した後、これら 2 つのエラーはなくなりました。
これらの変更を行っても、まだ正しく動作しません。