Bug 22317 - Interlace does not work with Geforce 6200 / NV44a
Summary: Interlace does not work with Geforce 6200 / NV44a
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-16 08:55 UTC by Alistair Buxton
Modified: 2013-08-18 18:09 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Photo of the display failing to run interlace mode properly. (35.38 KB, image/jpeg)
2009-06-16 08:55 UTC, Alistair Buxton
no flags Details
Double height patch (1.18 KB, patch)
2009-06-16 09:00 UTC, Alistair Buxton
no flags Details | Splinter Review
Fix for interlace modes (897 bytes, patch)
2009-06-18 10:09 UTC, Alistair Buxton
no flags Details | Splinter Review
nv17_interlace.patch (2.99 KB, patch)
2009-06-21 04:22 UTC, Francisco Jerez
no flags Details | Splinter Review
0001-Fix-video-overlay-on-interlaced-modes.patch (684 bytes, patch)
2009-06-26 09:10 UTC, Francisco Jerez
no flags Details | Splinter Review

Description Alistair Buxton 2009-06-16 08:55:54 UTC
Created attachment 26856 [details]
Photo of the display failing to run interlace mode properly.

Using this modeline:

ModeLine "768x576pali"  14.750  768  789  858  944   576 600 605 625 -hsync -vsync interlace

interlace mode fails; only the top half of each field is drawn, causing a result which looks like the attached picture.

I was able to make it work by patching nv_crtc.c, and doubling the values in mode->CrtcV* in the function nv_crtc_mode_set()

Additionally, when using this modeline and the double height patch:

ModeLine "720x576pali"  13.500  720  722  786  864   576 581 586 625 -hsync -vsync interlace

there is a vertical black bar down the middle of the picture.
Comment 1 Alistair Buxton 2009-06-16 09:00:12 UTC
Created attachment 26857 [details] [review]
Double height patch

Doing this caused interlace mode to work correctly, including xv.
Comment 2 Alistair Buxton 2009-06-16 09:07:12 UTC
Now, I know that NV17/NV18 cards do not currently support interlace, but when I removed the checks to force interlace on a MX 4000 / NV18 card, I got a very similar result as with the 6200. Doubling the display height caused interlace mode to work. The only difference was that xv did not work correctly in this case. I assume that is because of overlay vs texture mode for xv.
Comment 3 Alistair Buxton 2009-06-16 09:58:09 UTC
Register dumps and logs when using nouveau with and without the patch, and also nvidia binary driver (which works fine) may be found at this URL:

http://al.robotfuzz.com/~al/nouveau/interlace/
Comment 4 Alistair Buxton 2009-06-18 09:46:57 UTC
Searching around, I found this seemingly identical regression with ATI cards:

https://bugs.freedesktop.org/show_bug.cgi?id=12626

This comment seems relevant to this bug too, as it discusses a change in the way Xorg core uses INTERLACE_HALVE_V:

https://bugs.freedesktop.org/show_bug.cgi?id=12626#c70
Comment 5 Alistair Buxton 2009-06-18 10:09:23 UTC
Created attachment 26928 [details] [review]
Fix for interlace modes

This patch is based on Ramon van der Stelt's patch to the Radeon driver as linked in above comment. The only difference is I had to recalculate mode, not adjusted_mode, to see the correct result.
Comment 6 Francisco Jerez 2009-06-21 04:22:31 UTC
Created attachment 26994 [details] [review]
nv17_interlace.patch

Here on nv17, the attached patch seems necessary in addition to your patch for interlaced modes to work.

Without clearing NV_PCRTC_CONFIG_START_ADDRESS_HSYNC I get a meaningful image but only the odd fields (or the even ones, I don't know for sure ;-) are displayed. The blob seems to set NV_CIO_CRE_43 to 0x1 on all the hardware i've got around (nv34, nv35, nv40) but on this nv17 when an interlaced mode is being used, not doing it causes some weird diagonal lines to be displayed.

I don't know what the problem is with interlaced modes on nv2x, these patches might also fix them but I don't have any at hand.
Comment 7 Francisco Jerez 2009-06-26 09:10:12 UTC
Created attachment 27172 [details] [review]
0001-Fix-video-overlay-on-interlaced-modes.patch

The attached patch solves for me the video overlay problem with interlaced modes.
Comment 8 Alistair Buxton 2009-06-26 10:04:26 UTC
That overlay patch does not work properly. The video image gets scaled down to half the screen height, and then stretched again to the correct size. Result is that interlaced fields are lost (blended together.)

You can clearly see it with this test video which is PAL:

http://www.kingcot.eclipse.co.uk/unichrome/tvoutTest.html
Comment 9 Ilia Mirkin 2013-08-18 18:09:31 UTC
It appears that this bug report has laid dormant for quite a while. Sorry we haven't gotten to it. Since we fix bugs all the time, chances are pretty good that your issue has been fixed with the latest software. Please give it a shot. (Linux kernel 3.10.7, xf86-video-nouveau 1.0.9, mesa 9.1.6, or their git versions.) If upgrading to the latest isn't an option for you, your distro's bugzilla is probably the right destination for your bug report.

In an effort to clean up our bug list, we're pre-emptively closing all bugs that haven't seen updates since 2011. If the original issue remains, please make sure to provide fresh info, see http://nouveau.freedesktop.org/wiki/Bugs/ for what we need to see, and re-open this one.

Thanks,

The Nouveau Team


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.