diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-12-23 21:41:41 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-12-23 21:41:41 +0000 |
| commit | 5e554fd832f01dd84acfa5a57420a80a0bd96d07 (patch) | |
| tree | b6bdbfa74f4bfd84dd706f9157db61475a633f6e /Tests/TestApp/src/TestDrawCommands.cpp | |
| parent | Few updates to readme (diff) | |
| download | DiligentEngine-5e554fd832f01dd84acfa5a57420a80a0bd96d07.tar.gz DiligentEngine-5e554fd832f01dd84acfa5a57420a80a0bd96d07.zip | |
Updated core. Updated draw commands test to use split barriers
Diffstat (limited to 'Tests/TestApp/src/TestDrawCommands.cpp')
| -rw-r--r-- | Tests/TestApp/src/TestDrawCommands.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/Tests/TestApp/src/TestDrawCommands.cpp b/Tests/TestApp/src/TestDrawCommands.cpp index 4f1ef9f..2194ce6 100644 --- a/Tests/TestApp/src/TestDrawCommands.cpp +++ b/Tests/TestApp/src/TestDrawCommands.cpp @@ -69,6 +69,7 @@ void TestDrawCommands::Init( IRenderDevice *pDevice, IDeviceContext *pDeviceCont { BufferDesc BuffDesc; + BuffDesc.Name = "Test Draw Commands: VertexBuff"; BuffDesc.uiSizeInBytes = (Uint32)VertexData.size()*sizeof( float ); BuffDesc.BindFlags = BIND_VERTEX_BUFFER; BuffDesc.Usage = USAGE_STATIC; @@ -80,6 +81,7 @@ void TestDrawCommands::Init( IRenderDevice *pDevice, IDeviceContext *pDeviceCont { BufferDesc BuffDesc; + BuffDesc.Name = "Test Draw Commands: VertexBuff2"; BuffDesc.uiSizeInBytes = (Uint32)VertexData2.size()*sizeof( float ); BuffDesc.BindFlags = BIND_VERTEX_BUFFER; BuffDesc.Usage = USAGE_STATIC; @@ -91,6 +93,7 @@ void TestDrawCommands::Init( IRenderDevice *pDevice, IDeviceContext *pDeviceCont { BufferDesc BuffDesc; + BuffDesc.Name = "Test Draw Commands: IndexBuff"; BuffDesc.uiSizeInBytes = (Uint32)IndexData.size() * sizeof( Uint32 ); BuffDesc.BindFlags = BIND_INDEX_BUFFER; BuffDesc.Usage = USAGE_STATIC; @@ -102,6 +105,7 @@ void TestDrawCommands::Init( IRenderDevice *pDevice, IDeviceContext *pDeviceCont { BufferDesc BuffDesc; + BuffDesc.Name = "Test Draw Commands: InstanceData"; BuffDesc.uiSizeInBytes = (Uint32)InstanceData.size() * sizeof( float ); BuffDesc.BindFlags = BIND_VERTEX_BUFFER; BuffDesc.Usage = USAGE_STATIC; @@ -271,13 +275,15 @@ void TestDrawCommands::Draw() StateTransitionDesc Barriers[] = { - {m_pVertexBuff, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_VERTEX_BUFFER, true}, - {m_pVertexBuff2, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_VERTEX_BUFFER, true}, + {m_pIndirectDrawArgs, m_pIndirectDrawArgs->GetState(), RESOURCE_STATE_INDIRECT_ARGUMENT, false}, + {m_pIndexedIndirectDrawArgs, m_pIndexedIndirectDrawArgs->GetState(), RESOURCE_STATE_INDIRECT_ARGUMENT, false}, + {m_pVertexBuff, m_pVertexBuff->GetState(), RESOURCE_STATE_VERTEX_BUFFER, true}, + {m_pVertexBuff2, m_pVertexBuff2->GetState(), RESOURCE_STATE_VERTEX_BUFFER, true}, {m_pInstanceData, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_VERTEX_BUFFER, true}, - {m_pIndexBuff, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_INDEX_BUFFER, true}, - {m_pIndirectDrawArgs, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_INDIRECT_ARGUMENT, true}, - {m_pIndexedIndirectDrawArgs, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_INDIRECT_ARGUMENT, true} + {m_pIndexBuff, RESOURCE_STATE_UNKNOWN, RESOURCE_STATE_INDEX_BUFFER, true} }; + Barriers[0].TransitionType = STATE_TRANSITION_TYPE_BEGIN; + Barriers[1].TransitionType = STATE_TRANSITION_TYPE_BEGIN; m_pDeviceContext->TransitionResourceStates(_countof(Barriers), Barriers); Uint32 NumTestTrianglesInRow[TriGridSize] = { 0 }; @@ -384,6 +390,12 @@ void TestDrawCommands::Draw() // 4TH ROW: Instanced non-indexed rendering (glDrawArraysInstanced/DrawInstanced) + Barriers[0].TransitionType = STATE_TRANSITION_TYPE_END; + Barriers[1].TransitionType = STATE_TRANSITION_TYPE_END; + Barriers[0].UpdateResourceState = true; + Barriers[1].UpdateResourceState = true; + m_pDeviceContext->TransitionResourceStates(2, Barriers); + m_pDeviceContext->SetPipelineState(m_pPSOInst); m_pDeviceContext->TransitionShaderResources(m_pPSOInst, m_pSRBInst); m_pDeviceContext->CommitShaderResources(m_pSRBInst, RESOURCE_STATE_TRANSITION_MODE_VERIFY); |
