No video overlay on Intel X4500HD
Dave Airlie
airlied at gmail.com
Wed Jan 14 17:52:47 PST 2009
On 15/01/2009, at 10:32, Keith Packard <keithp at keithp.com> wrote:
> On Wed, 2009-01-14 at 19:35 +0000, Daniel Gultsch wrote:
>> Hi Guys,
>>
>> My major problem is that i dont have the "Intel(R) Video Overlay" but
>> only the "Intel(R) Textured Video" - as reported by xvinfo | grep -i
>> adaptor. This causes tearing and i really need to watch movies :-)
>
> The textured adapter causes tearing because it doesn't synchronize the
> screen update to the vblank. Synchronizing this operation involves
> either:
> A. queuing a command to stop the graphics engine until the vblank
> interval and then queuing the rendering commands right after
> that.
> B. waiting for the vblank interval to occur and then quickly
> queueing suitable rendering commands to the graphics engine
>
> Of the two, A. is trivial where it works (it does work on the X4500),
> but it means that all rendering on the screen stops once the command
> to
> display the video is queued to the card. That seems fairly harsh. I
> believe there is a patch around that will do this though; it might be
> reasonable if the video was filling the screen.
The thing is I suspect anyone playing a movie will care less about
slow desktop and more about tearing
The ideal solution is of course a dbl buffered compmgr with hw
pageflip and sync video
>
>
> So, we'd like to do B., but that requires the ability to stop the
> graphics engine in the middle of some drawing operation and switch it
> over to the 'update the video' command sequence at vblank time. We've
> explored several options here, but haven't gotten anything working.
> This
> is also tied in with the DRI2 work, which needs exactly the same
> operation.
>
> And that doesn't consider multi-head environments where you have to
> know
> which monitor you want to sync with so that you can wait for the right
> time.
>
> The overlay can easily synchronize because the overlay isn't connected
> to the graphics pipeline, and the overlay registers are all nicely
> double-buffered. So, you just poke a pointer to the new image into the
> overlay registers and they get swapped automatically at vblank time,
> making the transition entirely tearless.
>
> We're about to go try to make this work for DRI2, and so Xv should
> come
> along more-or-less for free. We sketched out some ideas on how this
> might work at XDS last fall, but then got distracted getting DRI2
> support into the kernel in time for 2.6.28 -- we dropped the vblank
> stuff as that doesn't have a huge impact on the kernel, or application
> interfaces.
>
> --
> keith.packard at intel.com
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
More information about the xorg
mailing list