Yes, I use D3D/DD scanline reporting and QueryPerformanceCounter() in low latency mode to predict when next vblank is going to happen.
It is not that simple to decouple black frame insertion because display is "shared" (both real display and black screen use same context), you must be careful not to block normal rendering and/or render it in wrong order. Time to emulate one frame can't be predicted (one frame may take 1ms, next frame may take 15ms!). This needs extra syncronization.
|