mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
Fable review of the B3 rework, note for CONTRACT-P7 §12. On the disaggregated build VulkanRenderer::WaitForFrameSerial waits the FIRST in-flight record with frameSerial >= serial, calls OnSubmitsCompletedUpTo and returns true. With the §3.1 clamp, a later record carrying the same serial (S2, the Present submission - the two-submissions-per-serial shape of §2.2) keeps the floor below `serial`, so the function returns true while IsFrameSerialComplete(serial) is false. The only caller, WaitForTimerQueryResult, re-checks IsTimerQueryResultReady, so today it degrades to a spurious timeout, not a wrong read. The fix belongs to B4 and is not made here: after OnSubmitsCompletedUpTo, return only if IsFrameSerialComplete(serial), else restart the scan (the call erases from the vector being iterated, so restart, never continue).