mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-23 23:16:31 +00:00
Fix inconsistencies in exports D3D12 html state. Closes #3823
This commit is contained in:
@@ -3139,6 +3139,28 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
|
||||
QVariantList row = exportViewHTML(used.descriptor, false, shaderInput, QString());
|
||||
|
||||
QString regname;
|
||||
if(shaderInput)
|
||||
{
|
||||
if(!spacesUsed)
|
||||
regname = QFormatStr("%1").arg(shaderInput->fixedBindNumber);
|
||||
else
|
||||
regname = QFormatStr("space%1, %2")
|
||||
.arg(shaderInput->fixedBindSetOrSpace)
|
||||
.arg(shaderInput->fixedBindNumber);
|
||||
|
||||
if(!shaderInput->name.empty())
|
||||
regname += lit(": ") + shaderInput->name;
|
||||
|
||||
if(shaderInput->bindArraySize > 1)
|
||||
regname += QFormatStr("[%1]").arg(used.access.arrayElement);
|
||||
}
|
||||
else if(used.access.index == DescriptorAccess::NoShaderBinding)
|
||||
{
|
||||
regname = m_Locations[{used.access.descriptorStore, used.access.byteOffset}].logicalBindName;
|
||||
}
|
||||
row.push_front(regname);
|
||||
|
||||
rowsRO.push_back(row);
|
||||
}
|
||||
|
||||
@@ -3154,6 +3176,28 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
|
||||
QVariantList row = exportViewHTML(used.descriptor, true, shaderInput, QString());
|
||||
|
||||
QString regname;
|
||||
if(shaderInput)
|
||||
{
|
||||
if(!spacesUsed)
|
||||
regname = QFormatStr("%1").arg(shaderInput->fixedBindNumber);
|
||||
else
|
||||
regname = QFormatStr("space%1, %2")
|
||||
.arg(shaderInput->fixedBindSetOrSpace)
|
||||
.arg(shaderInput->fixedBindNumber);
|
||||
|
||||
if(!shaderInput->name.empty())
|
||||
regname += lit(": ") + shaderInput->name;
|
||||
|
||||
if(shaderInput->bindArraySize > 1)
|
||||
regname += QFormatStr("[%1]").arg(used.access.arrayElement);
|
||||
}
|
||||
else if(used.access.index == DescriptorAccess::NoShaderBinding)
|
||||
{
|
||||
regname = m_Locations[{used.access.descriptorStore, used.access.byteOffset}].logicalBindName;
|
||||
}
|
||||
row.push_front(regname);
|
||||
|
||||
rowsRW.push_back(row);
|
||||
}
|
||||
|
||||
@@ -3263,9 +3307,20 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
xml.writeStartElement(lit("p"));
|
||||
xml.writeEndElement();
|
||||
|
||||
m_Common.exportHTMLTable(
|
||||
xml, {tr("Base Shading Rate"), tr("Shading Rate Combiners"), tr("Shading Rate Image")},
|
||||
{QFormatStr("%1x%2").arg(rs.state.baseShadingRate.first).arg(rs.state.baseShadingRate.second),
|
||||
QFormatStr("%1, %2")
|
||||
.arg(ToQStr(rs.state.shadingRateCombiners.first, GraphicsAPI::D3D12))
|
||||
.arg(ToQStr(rs.state.shadingRateCombiners.second, GraphicsAPI::D3D12)),
|
||||
m_Ctx.GetResourceName(rs.state.shadingRateImage)});
|
||||
|
||||
xml.writeStartElement(lit("p"));
|
||||
xml.writeEndElement();
|
||||
|
||||
m_Common.exportHTMLTable(
|
||||
xml,
|
||||
{tr("Line Rasteriztion"), tr("Forced Sample Count"), tr("Conservative Raster"),
|
||||
{tr("Line Rasterization"), tr("Forced Sample Count"), tr("Conservative Raster"),
|
||||
tr("Sample Mask")},
|
||||
{ToQStr(rs.state.lineRasterMode), rs.state.forcedSampleCount,
|
||||
rs.state.conservativeRasterization != ConservativeRaster::Disabled ? tr("Yes") : tr("No"),
|
||||
@@ -3334,12 +3389,10 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
.arg(om.blendState.blendFactor[2], 0, 'f', 2)
|
||||
.arg(om.blendState.blendFactor[3], 0, 'f', 2);
|
||||
|
||||
m_Common.exportHTMLTable(xml,
|
||||
{tr("Independent Blend Enable"), tr("Alpha to Coverage"),
|
||||
tr("Blend Factor"), tr("Multisampling Rate")},
|
||||
{om.blendState.independentBlend ? tr("Yes") : tr("No"),
|
||||
om.blendState.alphaToCoverage ? tr("Yes") : tr("No"), blendFactor,
|
||||
tr("%1x %2 qual").arg(om.multiSampleCount).arg(om.multiSampleQuality)});
|
||||
m_Common.exportHTMLTable(
|
||||
xml, {tr("Independent Blend Enable"), tr("Alpha to Coverage"), tr("Blend Factor")},
|
||||
{om.blendState.independentBlend ? tr("Yes") : tr("No"),
|
||||
om.blendState.alphaToCoverage ? tr("Yes") : tr("No"), blendFactor});
|
||||
|
||||
xml.writeStartElement(lit("h3"));
|
||||
xml.writeCharacters(tr("Target Blends"));
|
||||
@@ -3476,7 +3529,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
m_Common.exportHTMLTable(xml,
|
||||
{
|
||||
tr("Slot"),
|
||||
tr("Name"),
|
||||
tr("Resource"),
|
||||
tr("View Type"),
|
||||
tr("Resource Type"),
|
||||
tr("Width"),
|
||||
@@ -3508,7 +3561,7 @@ void D3D12PipelineStateViewer::exportHTML(QXmlStreamWriter &xml, const D3D12Pipe
|
||||
|
||||
m_Common.exportHTMLTable(xml,
|
||||
{
|
||||
tr("Name"),
|
||||
tr("Resource"),
|
||||
tr("View Type"),
|
||||
tr("Resource Type"),
|
||||
tr("Width"),
|
||||
|
||||
@@ -627,17 +627,6 @@ struct OM
|
||||
:type: bool
|
||||
)");
|
||||
bool stencilReadOnly = false;
|
||||
|
||||
DOCUMENT(R"(The sample count used for rendering.
|
||||
|
||||
:type: int
|
||||
)");
|
||||
uint32_t multiSampleCount = 1;
|
||||
DOCUMENT(R"(The MSAA quality level used for rendering.
|
||||
|
||||
:type: int
|
||||
)");
|
||||
uint32_t multiSampleQuality = 0;
|
||||
};
|
||||
|
||||
DOCUMENT("Describes the current state that a sub-resource is in.");
|
||||
|
||||
@@ -1574,10 +1574,7 @@ void DoSerialise(SerialiserType &ser, D3D12Pipe::OM &el)
|
||||
SERIALISE_MEMBER(depthReadOnly);
|
||||
SERIALISE_MEMBER(stencilReadOnly);
|
||||
|
||||
SERIALISE_MEMBER(multiSampleCount);
|
||||
SERIALISE_MEMBER(multiSampleQuality);
|
||||
|
||||
SIZE_CHECK(240);
|
||||
SIZE_CHECK(232);
|
||||
}
|
||||
|
||||
template <typename SerialiserType>
|
||||
@@ -1682,7 +1679,7 @@ void DoSerialise(SerialiserType &ser, D3D12Pipe::State &el)
|
||||
|
||||
SERIALISE_MEMBER(resourceStates);
|
||||
|
||||
SIZE_CHECK(800);
|
||||
SIZE_CHECK(792);
|
||||
}
|
||||
|
||||
#pragma endregion D3D12 pipeline state
|
||||
|
||||
Reference in New Issue
Block a user