Well it turns out there was another solution to eliminating tearing, while using no extra CPU time.

It turns out that the Trident display controller has built-in anti-tear support. Basically, this amounts to double-buffering where the controller lets you update the pointers to the next page to display, while not actually changing pages until the vertical retrace is in progress. It took quite a bit of messing around to actually get it to work, because the data-sheet was short on details, and somewhat misleading, but I've finally got a version of the Trident Xv driver that works tear-free with mplayer.