mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Specific DXIL disassembly handling for QuadVote
After bool _QuadVote2 = QuadAny(_32); bool _QuadVote = QuadAll(_37); Before bool _QuadVote2 = QuadVote(/*cond*/ _32, /*op*/ 0); bool _QuadVote = QuadVote(/*cond*/ _37, /*op*/ 1);
This commit is contained in:
@@ -663,6 +663,12 @@ enum class QuadOpKind : uint32_t
|
||||
// horizontal and vertical direction
|
||||
};
|
||||
|
||||
enum class QuadVoteOpKind : uint32_t
|
||||
{
|
||||
All = 1, // true if all conditions are true in this quad
|
||||
Any = 0, // true if any condition is true in this quad
|
||||
};
|
||||
|
||||
// Packing/unpacking intrinsics
|
||||
enum class UnpackMode : uint32_t
|
||||
{
|
||||
@@ -1855,6 +1861,7 @@ DECLARE_STRINGISE_TYPE(DXIL::WaveBitOpCode);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::WaveMultiPrefixOpCode);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::SignedOpKind);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::QuadOpKind);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::QuadVoteOpKind);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::PackMode);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::UnpackMode);
|
||||
DECLARE_STRINGISE_TYPE(DXIL::Operation);
|
||||
|
||||
@@ -4324,6 +4324,23 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DXOp::QuadVote:
|
||||
{
|
||||
// SM6.7 QuadVote(cond,op)
|
||||
QuadVoteOpKind quadVoteOpKind;
|
||||
if(getival<QuadVoteOpKind>(inst.args[2], quadVoteOpKind))
|
||||
{
|
||||
lineStr += "Quad" + ToStr(quadVoteOpKind);
|
||||
lineStr += "(";
|
||||
lineStr += GetArgId(inst, 1);
|
||||
lineStr += ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
showDxFuncName = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DXOp::Dot2:
|
||||
case DXOp::Dot3:
|
||||
case DXOp::Dot4:
|
||||
|
||||
@@ -139,6 +139,17 @@ rdcstr DoStringise(const DXIL::QuadOpKind &el)
|
||||
END_ENUM_STRINGISE();
|
||||
};
|
||||
|
||||
template <>
|
||||
rdcstr DoStringise(const DXIL::QuadVoteOpKind &el)
|
||||
{
|
||||
BEGIN_ENUM_STRINGISE(DXIL::QuadVoteOpKind)
|
||||
{
|
||||
STRINGISE_ENUM_CLASS(All)
|
||||
STRINGISE_ENUM_CLASS(Any)
|
||||
}
|
||||
END_ENUM_STRINGISE();
|
||||
};
|
||||
|
||||
template <>
|
||||
rdcstr DoStringise(const DXIL::PackMode &el)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user