Thomas Hilber <x...@toh.cx> writes: > sorry, but opposite to i810 and i9xx the i830 is not capable of doing > any interlaced video output.
Aaa, right, that may be so. I meant the traditional "i830" driver (as opposed to i810), now it's named intel and the DRM is i915. In fact I'm not really interested in pre-915 chips. >> - the video windows must not be scaled vertically. > > this restriction applies for i810 but is no longer true for i9xx > graphics Come on, playback of interlaced video only makes sense with vertically unscaled display. Otherwise you have to deinterlace first and this is hardly usable (except for maybe 1:2 scaling when you can just strip every other line to get progressive video). It doesn't depend on the chip. Well, obviously there is another possibility, you can double the frame rate - I guess not something we can do here (TV sets do that internally). > not necessarily by driver interrupts. In [1] (intel portion of > vga-sync-fields patch) I simply peek some registers (DOVSTA and PIPEA_DSL) > directly within the Xserver to determine the actual line + field position > of CRT controller at any time. Yes, I realize you can do it this way. But the chip can do it in hardware. IRQ driven, faster and completely reliable. The code already does it for progressive display + textured video. I've been using interrupt-driver frame sync (with selectable TFF/BFF - though without textured video) for almost 2 years and it's simple, fast and reliable - even with the CPU doing all the work. I wonder... Can your current code support textured video? Multiple video windows? Don't you have reliability problems, caused by the 20 ms sleep taking longer than requested (due to lack of RT scheduling)? > You are right: for i810 some field related overlay regs must be > reprogrammed during vertical retrace interrupts. I didn't say that. Actually I don't know about i810. > This is no longer true for i9xx architecture. 2 weaved fields are > processed there with no driver (interrupt) intervention. Consider two video windows, one is BFF and the other one TFF. You have to sync after each field. Of course, each window will get sync events only every complete frame, but they will be a field apart. -- Krzysztof Halasa _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg