From 03a7b275d254f6db7267ff894aeebb58e2e6e72f Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sat, 21 Jul 2018 20:31:41 -0700 Subject: Added IFence interface --- Tests/TestApp/include/TestApp.h | 2 ++ Tests/TestApp/src/TestApp.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) (limited to 'Tests/TestApp') diff --git a/Tests/TestApp/include/TestApp.h b/Tests/TestApp/include/TestApp.h index 931007b..4c5ad53 100644 --- a/Tests/TestApp/include/TestApp.h +++ b/Tests/TestApp/include/TestApp.h @@ -87,6 +87,8 @@ protected: Diligent::RefCntAutoPtr m_pInstBuff, m_pInstBuff2, m_pUniformBuff, m_pUniformBuff2, m_pUniformBuff3, m_pUniformBuff4; Diligent::RefCntAutoPtr m_pTestTex; Diligent::RefCntAutoPtr m_pRenderScript; + Diligent::RefCntAutoPtr m_pFence; + Diligent::Uint64 m_NextFenceValue = 1; SmartPointerTest m_SmartPointerTest; double m_CurrTime = 0; diff --git a/Tests/TestApp/src/TestApp.cpp b/Tests/TestApp/src/TestApp.cpp index 8c5062a..d9e81df 100644 --- a/Tests/TestApp/src/TestApp.cpp +++ b/Tests/TestApp/src/TestApp.cpp @@ -495,6 +495,12 @@ void TestApp::InitializeRenderers() // This may cause D3D12 error m_pImmediateContext->Flush(); } + + { + FenceDesc fenceDesc; + fenceDesc.Name = "Test fence"; + m_pDevice->CreateFence(fenceDesc, &m_pFence); + } } void TestApp::ProcessCommandLine(const char *CmdLine) @@ -607,8 +613,15 @@ void TestApp::Render() m_TestGS.Draw(); m_TestTessellation.Draw(); + auto CompletedFenceValue = m_pFence->GetCompletedValue(); + VERIFY_EXPR(CompletedFenceValue < m_NextFenceValue); + m_pImmediateContext->SignalFence(m_pFence, m_NextFenceValue++); + m_pImmediateContext->Flush(); m_pImmediateContext->InvalidateState(); + + CompletedFenceValue = m_pFence->GetCompletedValue(); + VERIFY_EXPR(CompletedFenceValue < m_NextFenceValue); } void TestApp::Present() -- cgit v1.2.3