Я успешно записал сеанс диагностики DX11 один раз.При запуске его во второй и последующий раз, когда я нажимаю на фрейм, я получаю эту ошибку:
Произошла ошибка.Воспроизведение вашего приложения может быть неполным.(HRESULT = 0x00630000) "Неизвестная ошибка (0x00630000)"
Я фиксирую кадры программно, используя код , показанный здесь в Microsoft Docs .Он работал раньше с другими шейдерами, а также с тем, который я сейчас отлаживаю.
У меня есть класс RAII для отладки:
class GPUBlock
{
public:
GPUBlock() : _startResult(DXGIGetDebugInterface1(0, __uuidof(_directXAnalysis), reinterpret_cast<void**>(&_directXAnalysis)))
{
if (debugInitialized())
_directXAnalysis->BeginCapture();
}
~GPUBlock()
{
if (debugInitialized())
_directXAnalysis->EndCapture();
}
bool debugInitialized() const { return _directXAnalysis && !FAILED(_startResult); }
private:
IDXGraphicsAnalysis* _directXAnalysis = nullptr;
HRESULT _startResult = OLE_E_BLANK;
};
Используется как:
{
Debug::GPUBlock debugGPUplease;
DoGPUWork();
}