Pass current active mask of workgroup to threads when stepping

This commit is contained in:
baldurk
2025-02-10 17:52:30 +00:00
parent 876b0f8ff7
commit 56decb5d8c
3 changed files with 6 additions and 4 deletions
@@ -643,7 +643,8 @@ void ThreadState::EnterEntryPoint(ShaderDebugState *state)
m_State = NULL;
}
void ThreadState::StepNext(ShaderDebugState *state, const rdcarray<ThreadState> &workgroup)
void ThreadState::StepNext(ShaderDebugState *state, const rdcarray<ThreadState> &workgroup,
const rdcarray<bool> &activeMask)
{
m_State = state;
+2 -1
View File
@@ -180,7 +180,8 @@ struct ThreadState
~ThreadState();
void EnterEntryPoint(ShaderDebugState *state);
void StepNext(ShaderDebugState *state, const rdcarray<ThreadState> &workgroup);
void StepNext(ShaderDebugState *state, const rdcarray<ThreadState> &workgroup,
const rdcarray<bool> &activeMask);
enum DerivDir
{
@@ -2479,7 +2479,7 @@ rdcarray<ShaderDebugState> Debugger::ContinueDebug()
funcRet = thread.callstack.back()->funcCallInstruction;
state.stepIndex = steps;
thread.StepNext(&state, workgroup);
thread.StepNext(&state, workgroup, activeMask);
if(thread.callstack.size() > prevStackSize)
instOffs =
@@ -2538,7 +2538,7 @@ rdcarray<ShaderDebugState> Debugger::ContinueDebug()
}
else
{
thread.StepNext(NULL, workgroup);
thread.StepNext(NULL, workgroup, activeMask);
}
}
}