You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
The algorithm assumes a single array sorted by 'order', where the most recent updates were ordered in the array last. Given sequences A, B and C that provided 3, 3, and 2 dissections respectively, we might expect to see an array of: [ A0, B0, C0, A1, B1, A_maxint, B_maxint, C_maxint ], which we would evaluate grouped by their order. Unfortunately when there are multiple sequences that provide dissection, this array ends up sorted by Sequence first _then_ order. This means we actually see the following: [ A0, A1, A_maxint, B0, B1, B_maxint, C0, C_maxint] This can result in excessive updates when you have lots of sequences that provide dissection on the same frame, because the update loop early exits as soon as it finds a mismatching order (we essentially flush for every single entry in that array). The fix is to ensure the dissected update array is sorted correctly. Ultimately we might look at refactoring this code to be more performant, but for now this is a robust stop-gap. #rb Max.Chen [CL 26907590 by andrew rodham in 5.3 branch]