File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed
renderdoc/driver/shaders/dxil Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -10133,20 +10133,16 @@ rdcarray<ShaderDebugState> Debugger::ContinueDebug()
1013310133 const uint32_t threadId = ref.id ;
1013410134 const uint32_t lane = threadId;
1013510135 ThreadState &thread = m_Workgroup[lane];
10136- ++countActiveThreads;
1013710136
10138- if (thread.Finished ())
10139- {
10140- tangle.SetThreadDead (threadId);
10141- continue ;
10142- }
10137+ bool wasActive = !thread.Finished ();
1014310138
1014410139 threadExecutionStates[threadId] = thread.GetEnteredPoints ();
1014510140
1014610141 const uint32_t threadConvergencePoint = thread.GetConvergencePoint ();
1014710142 // the thread activated a new convergence point
1014810143 if (threadConvergencePoint != INVALID_EXECUTION_POINT)
1014910144 {
10145+ wasActive = true ;
1015010146 if (newConvergencePoint == INVALID_EXECUTION_POINT)
1015110147 {
1015210148 newConvergencePoint = threadConvergencePoint;
@@ -10162,6 +10158,7 @@ rdcarray<ShaderDebugState> Debugger::ContinueDebug()
1016210158 const DXIL::BlockArray *partialConvergentPoints = thread.GetPartialConvergencePoints ();
1016310159 if (!partialConvergentPoints->empty ())
1016410160 {
10161+ wasActive = true ;
1016510162 if (newPartialConvergentPoints == NULL )
1016610163 {
1016710164 newPartialConvergentPoints = partialConvergentPoints;
@@ -10178,7 +10175,15 @@ rdcarray<ShaderDebugState> Debugger::ContinueDebug()
1017810175 }
1017910176
1018010177 if (thread.GetDiverged ())
10178+ {
10179+ wasActive = true ;
1018110180 ++countDivergedThreads;
10181+ }
10182+
10183+ if (thread.Finished ())
10184+ tangle.SetThreadDead (threadId);
10185+
10186+ countActiveThreads += wasActive ? 1 : 0 ;
1018210187 }
1018310188
1018410189 for (const ThreadReference &ref : threadRefs)
You can’t perform that action at this time.
0 commit comments