Skip debug info OpExtInst during debugging

This commit is contained in:
baldurk
2022-02-04 16:45:14 +00:00
parent c90a6a72fc
commit a12a320f18
3 changed files with 15 additions and 0 deletions
@@ -579,6 +579,15 @@ void ThreadState::SkipIgnoredInstructions()
continue;
}
if(op == Op::ExtInst)
{
if(debugger.IsDebugExtInstSet(Id::fromWord(it.word(3))))
{
nextInstruction++;
continue;
}
}
if(op == Op::SelectionMerge)
{
OpSelectionMerge merge(it);
@@ -260,6 +260,7 @@ public:
const DataType &GetType(Id typeId);
const DataType &GetTypeForId(Id ssaId);
const Decorations &GetDecorations(Id typeId);
bool IsDebugExtInstSet(Id id) const;
rdcstr GetRawName(Id id) const;
rdcstr GetHumanName(Id id);
void AddSourceVars(rdcarray<SourceVariableMapping> &sourceVars, const ShaderVariable &var, Id id);
@@ -2375,6 +2375,11 @@ uint32_t Debugger::ApplyDerivatives(uint32_t quadIndex, const Decorations &curDe
return outVar.rows;
}
bool Debugger::IsDebugExtInstSet(Id id) const
{
return knownExtSet[ExtSet_ShaderDbg] == id;
}
void Debugger::PreParse(uint32_t maxId)
{
Processor::PreParse(maxId);