https://www.gdcvault.com/play/1022186/Parallelizing-the-Naug...
>for example, you wanna update the text on the GUI that says how much gold the player has. you'll update the text after everything that could have influenced the gold this frame has updated (i.e. at the end of the frame).
Modern game engines are pipelined; you render the previous frame logic. In the talk aforementioned, they show a three stages deep pipeline looking like this
[FRAME] [FRAME+1] [FRAME+2]
----------------------------------------------
[LOGIC] [LOGIC+1] [LOGIC+2]
[RENDER LOGIC] [RENDER LOGIC+1]
[GPU RENDERING]
each stage is independent and doesn't require syncing. they call that "frame centric design".