Add index buffer binding offset to byte offset when opening buffer view

This commit is contained in:
baldurk
2018-05-03 14:25:37 +01:00
parent 644217bcbf
commit b1008ceb82
3 changed files with 18 additions and 13 deletions
@@ -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);
@@ -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);
@@ -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);