summaryrefslogtreecommitdiffstats
path: root/Tests/TestApp/src/TestDrawCommands.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-12-23 21:41:41 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-12-23 21:41:41 +0000
commit5e554fd832f01dd84acfa5a57420a80a0bd96d07 (patch)
treeb6bdbfa74f4bfd84dd706f9157db61475a633f6e /Tests/TestApp/src/TestDrawCommands.cpp
parentFew updates to readme (diff)
downloadDiligentEngine-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.cpp22
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);