
www.Usenet.com
| <-- __Chronological__ --> | <-- __Thread__ --> |
In article <[EMAIL PROTECTED]>, iain-3 @truecircuits.com says... > [...] > My understanding was that most of these games are rendering "future" > frames. What's on the screen represents "now". The engine predicts > the next buffer flip will happen in 12ms and starts a pipeline which > computes positions making reasonable assumptions about input command > continuity, etc, and then renders the frame. No, that's not how it is done. Taking the PS2 as an example, what is done is that at game frame N, a DMA list is prepared to draw everything that should be drawn based on the current state at frame N. At the end of frame N (at VBL time, if you're sync'ed to the refresh rate) this DMA is kicked off to VU1 + GS to be rendered. On frame N+1 the VU1+GS renders this data to an offscreen buffer. At the end of frame N+1 this offscreen buffer becomes the visible buffer (through flipping or buffer copying). This buffer is visible throughout frame N+2. So, in other words, there's a two frame delay between you pushing forward and you seeing yourself moving forward. What's on screen therefore does _not_ represent "now", but rather "then". Christer Ericson Sony Computer Entertainment, Santa Monica
| <-- __Chronological__ --> | <-- __Thread__ --> |