#140 Changes to scheduled rendering

Vasyl Tsvirkunov

This patch reduces number of screen parts (VGA_PARTS)
to one and forces screen draw at vertical timer
interrupt. Additionally, it splits off RENDER_EndUpdate
and schedules it to occur approximately half a frame
later. The net result is that drawing schedule is
closer to what actually happens on the real hardware
and the longest critical section in rendering code is
slightly smaller. See forums (Broken Programs) for
detailed discussion.

Fixes: King's Quest 6 intro movie, Turbo Outrun. May
also fix tearing in some other games.
Other potential positive effects: It is slightly faster
due to reduced per-part overhead (most likely,
negligible); frame latency is lower (image appears on
screen half a frame earlier); simpler.
Possible adverse effects: Look for stuttering sound.
Look for problems in OpenGL frontend (cannot test as it
is not usable on ATI).
Please report all problems with this patch in forum or


  • Logged In: YES

    Patch updated to match current CVS. Large part of the old
    version is actually already in CVS. So, the current
    incarnation of the patch is very simple. All it does is
    changing to number of parts via the define and introducing
    some delay between last part and call to RENDER_EndUpdate.

  • Logged In: YES

    Update to current CVS. There was a change that made this
    patch ineffective for quite a while.