diff --git a/src/bgfx.cpp b/src/bgfx.cpp index e2828a6e0..f23861107 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -880,12 +880,11 @@ namespace bgfx SortKey::Enum type = SortKey::SortProgram; switch (s_ctx->m_viewMode[_id]) { - case ViewMode::Sequential: m_key.m_seq = s_ctx->m_seq[_id]; type = SortKey::SortSequence; break; - case ViewMode::DepthAscending: m_key.m_depth = (uint32_t)_depth; type = SortKey::SortDepth; break; - case ViewMode::DepthDescending: m_key.m_depth = (uint32_t)-_depth; type = SortKey::SortDepth; break; + case ViewMode::Sequential: m_key.m_seq = s_ctx->getSeqIncr(_id); type = SortKey::SortSequence; break; + case ViewMode::DepthAscending: m_key.m_depth = (uint32_t)_depth; type = SortKey::SortDepth; break; + case ViewMode::DepthDescending: m_key.m_depth = (uint32_t)-_depth; type = SortKey::SortDepth; break; default: break; } - s_ctx->m_seq[_id]++; uint64_t key = m_key.encodeDraw(type); m_sortKeys[m_numRenderItems] = key; @@ -956,8 +955,7 @@ namespace bgfx m_key.m_program = _handle.idx; m_key.m_depth = 0; m_key.m_view = _id; - m_key.m_seq = s_ctx->m_seq[_id]; - s_ctx->m_seq[_id]++; + m_key.m_seq = s_ctx->getSeqIncr(_id); uint64_t key = m_key.encodeCompute(); m_sortKeys[m_numRenderItems] = key; diff --git a/src/bgfx_p.h b/src/bgfx_p.h index bfe026574..0253eea90 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -4315,6 +4315,11 @@ namespace bgfx BGFX_API_FUNC(uint32_t frame(bool _capture = false) ); + uint32_t getSeqIncr(uint8_t _id) + { + return m_seq[_id]++; + } + void dumpViewStats(); void freeDynamicBuffers(); void freeAllHandles(Frame* _frame);