0
DirectX APIを使用して、システムメモリからGPUメモリへの書き込み速度をテストするベンチマークアプリケーションを作成したいと思います。しかし、私は単にループを作成してforループでリリースしても、メモリ診断ツールはプロセスのプライベートバイトサイズが絶えず増加していることを示しています。私は、GPUマップされたシステムメモリが決して解放されないためかもしれないと思う。ところで、ヒープサイズは安定しています。DirectX CreateBufferメモリリーク
1. FOR 1000 iteration
2. CreateBuffer using
D3D11_USAGE_STAGING/D3D11_USAGE_DYNAMIC
& D3D11_CPU_ACCESS_WRITE
3. d3dbuffer.Release & d3dbuffer = nullptr
誰かが正しくリリースする方法を説明できますか?これは、いわゆるマップされたAGPメモリですか?
を見るには、あなたにチャックをありがとうございました。すべての繰り返しに対して、私はflushを呼び出して、コマンドバッファの空のシグナルを問い合わせます。しかし、私はビジュアルスタジオ2015診断ツールを使用してメモリ使用量を確認すると、それはまだ増加しており、決して下がることはありません。システムメモリがなくなると、アプリケーションがクラッシュします。この記事ではAPIのプロファイリングについて非常にうまく説明していますが、メモリ管理について十分な情報をカバーしていませんでした。バッファサイズを制限するアイデアは何ですか?どうもありがとうございます! – shorttermmem
ID3D11Debugとデバッグデバイスを使用して、d3dオブジェクトが漏洩していないことを確認しました。ヒープは安定しています。しかし、プライベートバイトは数回の繰り返しごとに上昇し続けます。最終的に、使用可能な16GBメモリを使用しているときにアプリがクラッシュします。 – shorttermmem