Subtract per-draw index byte offset from index buffer size

This commit is contained in:
baldurk
2022-08-01 20:40:03 +01:00
parent 50919f5cfa
commit 65581ca322
+9 -2
View File
@@ -3805,8 +3805,15 @@ void BufferViewer::UI_CalculateMeshFormats()
m_VSInPosition.indexByteStride = ib.byteStride;
m_VSInPosition.baseVertex = action->baseVertex;
m_VSInPosition.indexResourceId = ib.resourceId;
m_VSInPosition.indexByteOffset = ib.byteOffset + action->indexOffset * ib.byteStride;
m_VSInPosition.indexByteSize = ib.byteSize;
uint32_t drawIdxByteOffs = action->indexOffset * ib.byteStride;
m_VSInPosition.indexByteOffset = ib.byteOffset + drawIdxByteOffs;
if(ib.byteSize >= ~0U)
m_VSInPosition.indexByteSize = ib.byteSize;
else if(drawIdxByteOffs > ib.byteSize)
m_VSInPosition.indexByteSize = 0;
else
m_VSInPosition.indexByteSize = ib.byteSize - drawIdxByteOffs;
if((action->flags & ActionFlags::Indexed) && m_VSInPosition.indexByteStride == 0)
m_VSInPosition.indexByteStride = 4U;