On 5/08/2013 20:46, Richard Bair wrote:
As I wrote in the previous email, it seems that we currently are not blocked waiting for 
vsync(), at least on Windows with D3D pipeline. Anyway, even if we "fix" that, 
what you propose is that sometimes both threads will be blocked (the render thread 
waiting for vsync, the event thread waiting for the render thread), which doesn't sound 
perfect.
Right. That stinks.
So today, the FX thread will block waiting for the render thread at the point 
where we synchronize state between the FX thread and render thread. The problem 
with this proposal is that we will wait here much longer waiting for vsync in 
the case that we have animations happening, which is just dead time when we 
ought to be preparing the next frame.

Richard
Reading all this I get the distinct feeling that the current way of doing things is 'double buffering', where you have to wait until vsync arrives before you can start with the next frame, while you are looking for 'triple buffering', which allows a new frame to be prepared in a seperate buffer/graph/layout while the first (finished) buffer/graph/layout waits to be passed off to the render thread when vsync arrives.

--John

Reply via email to