In one of the early videos Casey said something like "You always have one frame of input lag, and if you do silly things, it may even be 2 frames".
My question is - how is it possible to have only one frame of lag?
Suppose you have a separate thread that collects the input during one frame, then in the next frame GameUpdateAndRender() runs, using the collected data, and only the frame after it will you see the consequences of your input. So if you pressed a button in the beginning of a frame, you'll then have 2 frames to wait.