@GDCPresoReviews @TomF as @bas mentions, if it allows you to assume forward progress while in diverging execution, that could make the shader compiler simpler in certain situations. UB is important in terms of the abstract model of the shader language and IR, but the actual hardware model matters too because it changes how much freedom the compiler has to actualize the code in the shader. Aside: In this case, does this then impact the implementation of maximal reconvergence? Guess it's similar?

@dotstdy @TomF @bas

Does it *actually* allow you to assume forward progress in diverging execution? Is the thread scheduler *guaranteed* to provide it?

Like, saying the scheduler is capable of running an arbitrary subset of threads is different than saying the scheduler implements a fair scheduling algorithm

Execution model — CUDA Core Compute Libraries