Skip to content

Commit 2068a18

Browse files
committed
Fix a stall caused by faulty logic with index/vertex buffer update and usage, causing uneven frame pacing.
Hopefully fixed GitHub linguistics stats this time...
1 parent dd4c636 commit 2068a18

File tree

3 files changed

+6
-8
lines changed

3 files changed

+6
-8
lines changed

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,4 @@
6565
*.c linguist-language=C++
6666
*.h linguist-language=C++
6767
*.inl linguist-language=C++
68-
GITechDemo/Tools/* linguist-vendored
68+
GITechDemo/Tools/** linguist-vendored

GITechDemo/Code/AppMain/GITechDemo/RenderScheme/UIPass.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,9 +1009,7 @@ void UIPass::RenderUI()
10091009
if (!RSMgr)
10101010
return;
10111011

1012-
const unsigned int nRenderBufferIdx = (m_nCurrBufferIdx + 1) % UI_BUFFER_COUNT;
1013-
1014-
if (!m_pImGuiVb[nRenderBufferIdx])
1012+
if (!m_pImGuiVb[m_nCurrBufferIdx])
10151013
return;
10161014

10171015
// Setup render states
@@ -1037,9 +1035,9 @@ void UIPass::RenderUI()
10371035

10381036
// Render geometry
10391037
UIShader.Enable();
1040-
for (unsigned int n = 0, vtxOffset = 0, idxOffset = 0; n < m_tDrawData[nRenderBufferIdx].CmdList.size(); n++)
1038+
for (unsigned int n = 0, vtxOffset = 0, idxOffset = 0; n < m_tDrawData[m_nCurrBufferIdx].CmdList.size(); n++)
10411039
{
1042-
const UIDrawData::UIDrawCommandList& cmdList = m_tDrawData[nRenderBufferIdx].CmdList[n];
1040+
const UIDrawData::UIDrawCommandList& cmdList = m_tDrawData[m_nCurrBufferIdx].CmdList[n];
10431041
for (unsigned int i = 0; i < cmdList.DrawCmd.size(); i++)
10441042
{
10451043
const UIDrawData::UIDrawCommandList::UIDrawCommand& cmd = cmdList.DrawCmd[i];
@@ -1080,7 +1078,7 @@ void UIPass::RenderUI()
10801078
if (invalidateShaderConstants)
10811079
UIShader.CommitShaderInputs();
10821080

1083-
RenderContext->DrawVertexBuffer(m_pImGuiVb[nRenderBufferIdx], vtxOffset, cmd.ElemCount / 3, cmdList.VtxBufferSize, idxOffset);
1081+
RenderContext->DrawVertexBuffer(m_pImGuiVb[m_nCurrBufferIdx], vtxOffset, cmd.ElemCount / 3, cmdList.VtxBufferSize, idxOffset);
10841082

10851083
idxOffset += cmd.ElemCount;
10861084
}

GITechDemo/Code/AppMain/GITechDemo/RenderScheme/UIPass.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ namespace Synesthesia3D
4444

4545
namespace GITechDemoApp
4646
{
47-
#define UI_BUFFER_COUNT (2)
47+
#define UI_BUFFER_COUNT (3)
4848

4949
class ArtistParameter;
5050

0 commit comments

Comments
 (0)