From 14e7c1e9a32b1b3723a7d61c29c7e59069aa2d32 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 17 Feb 2017 12:30:58 +0000 Subject: [PATCH] Sort position element on output to the start before calculating offsets --- qrenderdoc/Windows/BufferViewer.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index 783425930..ae1808a17 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -1391,12 +1391,20 @@ void BufferViewer::ConfigureMeshColumns() i++; } + // shift position attribute up to first, keeping order otherwise + // the same + if(posidx > 0) + { + FormatElement pos = m_ModelVSOut->columns[posidx]; + m_ModelVSOut->columns.insert(0, m_ModelVSOut->columns.takeAt(posidx)); + } + i = 0; uint32_t offset = 0; - for(const SigParameter &sig : vs->OutputSig) + for(const FormatElement &sig : m_ModelVSOut->columns) { - uint numComps = sig.compCount; - uint elemSize = sig.compType == eCompType_Double ? 8U : 4U; + uint numComps = sig.format.compCount; + uint elemSize = sig.format.compType == eCompType_Double ? 8U : 4U; if(m_Ctx.CurPipelineState.HasAlignedPostVSData()) {