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
here.
Changes to scheduled rendering
Logged In: YES
user_id=352450
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.
Updates
Logged In: YES
user_id=352450
Update to current CVS. There was a change that made this
patch ineffective for quite a while.
Update