diff --git a/tests/RHI/D3D12/integration/minimal/main.cpp b/tests/RHI/D3D12/integration/minimal/main.cpp index 2c68ceaa..16ff564f 100644 --- a/tests/RHI/D3D12/integration/minimal/main.cpp +++ b/tests/RHI/D3D12/integration/minimal/main.cpp @@ -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) { diff --git a/tests/RHI/D3D12/integration/quad/main.cpp b/tests/RHI/D3D12/integration/quad/main.cpp index d73975bc..a90b098a 100644 --- a/tests/RHI/D3D12/integration/quad/main.cpp +++ b/tests/RHI/D3D12/integration/quad/main.cpp @@ -400,6 +400,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine frameCount++; if (frameCount >= targetFrameCount) { + if (RenderDocCapture::Get().EndCapture()) { + Log("[INFO] RenderDoc capture ended"); + } Log("[INFO] Reached target frame count %d - taking screenshot!", targetFrameCount); WaitForGPU(); bool screenshotResult = D3D12Screenshot::Capture( @@ -417,8 +420,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine } if (frameCount == targetFrameCount - 1) { - RenderDocCapture::Get().TriggerCapture(); - Log("[INFO] RenderDoc capture triggered"); + if (RenderDocCapture::Get().BeginCapture("D3D12_Quad_Test")) { + Log("[INFO] RenderDoc capture started"); + } } EndRender(); diff --git a/tests/RHI/D3D12/integration/sphere/main.cpp b/tests/RHI/D3D12/integration/sphere/main.cpp index 17309d75..534b3a3b 100644 --- a/tests/RHI/D3D12/integration/sphere/main.cpp +++ b/tests/RHI/D3D12/integration/sphere/main.cpp @@ -492,6 +492,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine frameCount++; if (frameCount >= targetFrameCount) { + if (RenderDocCapture::Get().EndCapture()) { + Log("[INFO] RenderDoc capture ended"); + } Log("[INFO] Reached target frame count %d - taking screenshot!", targetFrameCount); WaitForGPU(); bool screenshotResult = D3D12Screenshot::Capture( @@ -509,8 +512,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine } if (frameCount == targetFrameCount - 1) { - RenderDocCapture::Get().TriggerCapture(); - Log("[INFO] RenderDoc capture triggered"); + if (RenderDocCapture::Get().BeginCapture("D3D12_Sphere_Test")) { + Log("[INFO] RenderDoc capture started"); + } } EndRender(); diff --git a/tests/RHI/D3D12/integration/triangle/main.cpp b/tests/RHI/D3D12/integration/triangle/main.cpp index 920f6453..47e6dd6b 100644 --- a/tests/RHI/D3D12/integration/triangle/main.cpp +++ b/tests/RHI/D3D12/integration/triangle/main.cpp @@ -330,6 +330,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine frameCount++; if (frameCount >= targetFrameCount) { + if (RenderDocCapture::Get().EndCapture()) { + Log("[INFO] RenderDoc capture ended"); + } Log("[INFO] Reached target frame count %d - taking screenshot!", targetFrameCount); WaitForGPU(); Log("[INFO] GPU idle, taking screenshot..."); @@ -348,8 +351,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine } if (frameCount == targetFrameCount - 1) { - RenderDocCapture::Get().TriggerCapture(); - Log("[INFO] RenderDoc capture triggered"); + if (RenderDocCapture::Get().BeginCapture("D3D12_Triangle_Test")) { + Log("[INFO] RenderDoc capture started"); + } } EndRender(); diff --git a/tests/RHI/OpenGL/integration/minimal/main.cpp b/tests/RHI/OpenGL/integration/minimal/main.cpp index 27a900ca..1cda8429 100644 --- a/tests/RHI/OpenGL/integration/minimal/main.cpp +++ b/tests/RHI/OpenGL/integration/minimal/main.cpp @@ -131,14 +131,18 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine commandList.Clear(1.0f, 0.0f, 0.0f, 1.0f, 1 | 2); if (frameCount >= targetFrameCount - 1) { - RenderDocCapture::Get().TriggerCapture(); - Log("[INFO] RenderDoc capture triggered"); + if (RenderDocCapture::Get().BeginCapture("OpenGL_Minimal_Test")) { + Log("[INFO] RenderDoc capture started"); + } } swapChain.Present(0, 0); frameCount++; if (frameCount >= targetFrameCount) { + if (RenderDocCapture::Get().EndCapture()) { + Log("[INFO] RenderDoc capture ended"); + } break; } }