Summary: | Interlace does not work with Geforce 6200 / NV44a | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Alistair Buxton <a.j.buxton> | ||||||||||||
Component: | Driver/nouveau | Assignee: | Nouveau Project <nouveau> | ||||||||||||
Status: | RESOLVED INVALID | QA Contact: | Xorg Project Team <xorg-team> | ||||||||||||
Severity: | normal | ||||||||||||||
Priority: | medium | ||||||||||||||
Version: | git | ||||||||||||||
Hardware: | x86 (IA32) | ||||||||||||||
OS: | Linux (All) | ||||||||||||||
Whiteboard: | |||||||||||||||
i915 platform: | i915 features: | ||||||||||||||
Attachments: |
|
Created attachment 26857 [details] [review] Double height patch Doing this caused interlace mode to work correctly, including xv. 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. 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/ 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 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. 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. 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. 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 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.
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.