問題タブ [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.

0 投票する
1 に答える
2963 参照

directx-12 - ヒープタイプのアップロードで GPU リソースを更新する最良の方法は何ですか?

メソッドを使用しID3D12Resource::Mapて GPU リソースを更新しています。それが最も効率的な方法ですか?どのような代替案が存在しますか?

0 投票する
1 に答える
527 参照

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 つのエラーはなくなりました。

これらの変更を行っても、まだ正しく動作しません。