revert: restore BeginCapture/EndCapture instead of TriggerCapture
TriggerCapture caused incomplete rdc files due to async file writing. BeginCapture/EndCapture ensures synchronous file write on EndCapture.
This commit is contained in:
@@ -279,11 +279,34 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||
ExecuteCommandList();
|
||||
|
||||
if (frameCount >= targetFrameCount) {
|
||||
RenderDocCapture::Get().TriggerCapture();
|
||||
Log("[INFO] RenderDoc capture triggered");
|
||||
if (RenderDocCapture::Get().EndCapture()) {
|
||||
Log("[INFO] RenderDoc capture ended");
|
||||
}
|
||||
WaitForGPU();
|
||||
Log("[INFO] GPU idle, taking screenshot...");
|
||||
bool screenshotResult = D3D12Screenshot::Capture(
|
||||
gDevice,
|
||||
gCommandQueue,
|
||||
gSwapChain.GetBackBuffer(gCurrentRTIndex),
|
||||
"minimal.ppm"
|
||||
);
|
||||
if (screenshotResult) {
|
||||
Log("[INFO] Screenshot saved to minimal.ppm");
|
||||
} else {
|
||||
Log("[ERROR] Screenshot failed");
|
||||
}
|
||||
Log("[INFO] RenderDoc capture completed");
|
||||
break;
|
||||
}
|
||||
|
||||
// Present
|
||||
if (frameCount == targetFrameCount - 1) {
|
||||
if (RenderDocCapture::Get().BeginCapture("D3D12_Minimal_Test")) {
|
||||
Log("[INFO] RenderDoc capture started");
|
||||
}
|
||||
}
|
||||
|
||||
EndRender();
|
||||
ExecuteCommandList();
|
||||
gSwapChain.Present(0, 0);
|
||||
|
||||
if (frameCount >= targetFrameCount) {
|
||||
|
||||
Reference in New Issue
Block a user