diff --git a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp index e11bf9141..a927c35c7 100644 --- a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.cpp @@ -1319,9 +1319,10 @@ void D3D11PipelineStateViewer::setState() {tr("Index"), state.inputAssembly.indexBuffer.resourceId, draw ? draw->indexByteWidth : 0, state.inputAssembly.indexBuffer.byteOffset, (qulonglong)length, QString()}); - node->setTag( - QVariant::fromValue(D3D11VBIBTag(state.inputAssembly.indexBuffer.resourceId, - draw ? draw->indexOffset * draw->indexByteWidth : 0))); + node->setTag(QVariant::fromValue( + D3D11VBIBTag(state.inputAssembly.indexBuffer.resourceId, + state.inputAssembly.indexBuffer.byteOffset + + (draw ? draw->indexOffset * draw->indexByteWidth : 0)))); if(!ibufferUsed) setInactiveRow(node); @@ -1339,9 +1340,10 @@ void D3D11PipelineStateViewer::setState() RDTreeWidgetItem *node = new RDTreeWidgetItem( {tr("Index"), tr("No Buffer Set"), lit("-"), lit("-"), lit("-"), QString()}); - node->setTag( - QVariant::fromValue(D3D11VBIBTag(state.inputAssembly.indexBuffer.resourceId, - draw ? draw->indexOffset * draw->indexByteWidth : 0))); + node->setTag(QVariant::fromValue( + D3D11VBIBTag(state.inputAssembly.indexBuffer.resourceId, + state.inputAssembly.indexBuffer.byteOffset + + (draw ? draw->indexOffset * draw->indexByteWidth : 0)))); setEmptyRow(node); diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp index b54319084..b791cc346 100644 --- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.cpp @@ -1342,9 +1342,10 @@ void D3D12PipelineStateViewer::setState() {tr("Index"), state.inputAssembly.indexBuffer.resourceId, draw ? draw->indexByteWidth : 0, (qulonglong)state.inputAssembly.indexBuffer.byteOffset, (qulonglong)length, QString()}); - node->setTag( - QVariant::fromValue(D3D12VBIBTag(state.inputAssembly.indexBuffer.resourceId, - draw ? draw->indexOffset * draw->indexByteWidth : 0))); + node->setTag(QVariant::fromValue( + D3D12VBIBTag(state.inputAssembly.indexBuffer.resourceId, + state.inputAssembly.indexBuffer.byteOffset + + (draw ? draw->indexOffset * draw->indexByteWidth : 0)))); if(!ibufferUsed) setInactiveRow(node); @@ -1362,9 +1363,10 @@ void D3D12PipelineStateViewer::setState() RDTreeWidgetItem *node = new RDTreeWidgetItem( {tr("Index"), tr("No Buffer Set"), lit("-"), lit("-"), lit("-"), QString()}); - node->setTag( - QVariant::fromValue(D3D12VBIBTag(state.inputAssembly.indexBuffer.resourceId, - draw ? draw->indexOffset * draw->indexByteWidth : 0))); + node->setTag(QVariant::fromValue( + D3D12VBIBTag(state.inputAssembly.indexBuffer.resourceId, + state.inputAssembly.indexBuffer.byteOffset + + (draw ? draw->indexOffset * draw->indexByteWidth : 0)))); setEmptyRow(node); diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp index 60f17bce0..a6ecfec40 100644 --- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp +++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.cpp @@ -1601,7 +1601,8 @@ void VulkanPipelineStateViewer::setState() node->setTag(QVariant::fromValue( VulkanVBIBTag(state.inputAssembly.indexBuffer.resourceId, - draw != NULL ? draw->indexOffset * draw->indexByteWidth : 0))); + state.inputAssembly.indexBuffer.byteOffset + + (draw ? draw->indexOffset * draw->indexByteWidth : 0)))); if(!ibufferUsed) setInactiveRow(node);