File tree Expand file tree Collapse file tree 1 file changed +4
-8
lines changed Expand file tree Collapse file tree 1 file changed +4
-8
lines changed Original file line number Diff line number Diff line change @@ -460,14 +460,10 @@ namespace IGC
460
460
VISA_EMask_Ctrl emask = m_encoderState.m_noMask ? vISA_EMASK_M1_NM : vISA_EMASK_M1;
461
461
VISA_Exec_Size execSize = visaExecSize (m_program->m_dispatchSize );
462
462
463
- // As uniform maybe thread-uniform, it will not work for scalar jump
464
- // for two threads whose flags are different. Once we improve uniform
465
- // analysis to have global (uniform among all threads), not just local
466
- // uniform (within a thread), we can still generate scalar jump when flag
467
- // is a global uniform.
468
- //
469
- // For now, just disable uniform goto if EU fusion is on.
470
- if (flag == nullptr ||
463
+ // If EU fusion is on, goto is uniform if flag is workgroup/global uniform;
464
+ // otherwise, goto is uniform if flag is uniform (thread/workgroup/global).
465
+ if (flag == nullptr || // unconditional jump is always uniform
466
+ flag->IsWorkGroupOrGlobalUniform () ||
471
467
(!m_program->m_Platform ->hasFusedEU () && flag->IsUniform ()))
472
468
{
473
469
execSize = EXEC_SIZE_1;
You can’t perform that action at this time.
0 commit comments