mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-10-13 07:39:22 +00:00
RD DXIL Disassembly add compute shader inputs and thread group size
e.g.
[numthreads(3, 2, 1)]
void main()
{
InitialiseHandle(bufOut); // index = 1
InitialiseHandle(bufIn); // index = 0
InitialiseHandle(consts); // index = 0
Inputs
float3 threadId;
Inputs
float flattenedThreadIdInGroup;
This commit is contained in:
1 parent
6cddf16263
commit
419d321a4a
1 file changed
+60
-1
@@ -2764,6 +2764,28 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection)
|
||||
}
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
else if(reflection && !reflection->InputSig.empty())
|
||||
{
|
||||
m_Disassembly += "Inputs";
|
||||
DisassemblyAddNewLine();
|
||||
for(size_t j = 0; j < reflection->InputSig.size(); ++j)
|
||||
{
|
||||
if(needBlankLine)
|
||||
DisassemblyAddNewLine();
|
||||
|
||||
const SigParameter &sig = reflection->InputSig[j];
|
||||
|
||||
m_Disassembly += " ";
|
||||
m_Disassembly += ToStr(sig.varType).c_str();
|
||||
if(sig.compCount > 1)
|
||||
m_Disassembly += ToStr(sig.compCount);
|
||||
|
||||
m_Disassembly += " " + sig.semanticIdxName;
|
||||
m_Disassembly += ";";
|
||||
needBlankLine = true;
|
||||
}
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
|
||||
if(!entryPoint->outputs.empty())
|
||||
{
|
||||
@@ -2807,6 +2829,34 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection)
|
||||
}
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
else if(reflection && !reflection->OutputSig.empty())
|
||||
{
|
||||
if(needBlankLine)
|
||||
{
|
||||
DisassemblyAddNewLine();
|
||||
needBlankLine = false;
|
||||
}
|
||||
|
||||
m_Disassembly += "Outputs";
|
||||
DisassemblyAddNewLine();
|
||||
for(size_t j = 0; j < reflection->OutputSig.size(); ++j)
|
||||
{
|
||||
if(needBlankLine)
|
||||
DisassemblyAddNewLine();
|
||||
|
||||
const SigParameter &sig = reflection->OutputSig[j];
|
||||
|
||||
m_Disassembly += " ";
|
||||
m_Disassembly += ToStr(sig.varType).c_str();
|
||||
if(sig.compCount > 1)
|
||||
m_Disassembly += ToStr(sig.compCount);
|
||||
|
||||
m_Disassembly += " " + sig.semanticIdxName;
|
||||
m_Disassembly += ";";
|
||||
needBlankLine = true;
|
||||
}
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
|
||||
if(!entryPoint->srvs.empty())
|
||||
{
|
||||
@@ -2950,9 +3000,18 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection)
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
|
||||
// Show the compute shader thread group size
|
||||
if(reflection && m_Type == DXBC::ShaderType::Compute)
|
||||
{
|
||||
m_Disassembly += StringFormat::Fmt(
|
||||
"[numthreads(%u, %u, %u)]", reflection->DispatchThreadsDimension[0],
|
||||
reflection->DispatchThreadsDimension[1], reflection->DispatchThreadsDimension[2]);
|
||||
DisassemblyAddNewLine();
|
||||
}
|
||||
|
||||
if(func.internalLinkage)
|
||||
m_Disassembly += "internal ";
|
||||
m_Disassembly += func.type->declFunction("@" + escapeStringIfNeeded(func.name), func.args,
|
||||
m_Disassembly += func.type->declFunction(escapeStringIfNeeded(func.name), func.args,
|
||||
func.attrs, dxcStyleFormatting);
|
||||
|
||||
if(func.comdatIdx < m_Comdats.size())
|
||||
|
||||
Reference in new issue
Block a user