Bug 22956 - nv50: kms, random screen blinkage
Summary: nv50: kms, random screen blinkage
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-26 20:32 UTC by Kyle K
Modified: 2009-07-30 18:21 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
dmesg (172.70 KB, text/plain)
2009-07-26 20:32 UTC, Kyle K
no flags Details
gt200 vbios (64.00 KB, application/octet-stream)
2009-07-26 20:34 UTC, Kyle K
no flags Details
Xorg.0 no go with exapixmaps, since when it is not working? :p (46.16 KB, text/plain)
2009-07-26 20:37 UTC, Kyle K
no flags Details
kernel log with xorg and ddx up, beware~7.4MB (115.85 KB, application/x-bzip)
2009-07-26 20:39 UTC, Kyle K
no flags Details
good, http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=7992783bc72309bf4e1323097078406c4588adec (170.07 KB, text/plain)
2009-07-29 04:27 UTC, Kyle K
no flags Details
bad, http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=66125505c3ac0e201e8286c777be46f3b415ff53 (169.98 KB, text/plain)
2009-07-29 04:28 UTC, Kyle K
no flags Details

Description Kyle K 2009-07-26 20:32:53 UTC
Created attachment 28020 [details]
dmesg

when kms is off everything is fine, but with kms on screen seems to blink randomly from time time whether I'm in shell~tty1 or when X is running. it almost seems like a crtc timing issue. along with the screen blink there's one horizontal bar/artifact at the same level as the cursor, both true for shell~tty1 and xorg~gui. also upon entering xorg~gui I noticed fuzzy fonts as if vert refresh rate was off but it was at 60Hz which happens to the max of my lcd.
Comment 1 Kyle K 2009-07-26 20:34:42 UTC
Created attachment 28021 [details]
gt200 vbios
Comment 2 Kyle K 2009-07-26 20:37:09 UTC
Created attachment 28022 [details]
Xorg.0 no go with exapixmaps, since when it is not working? :p
Comment 3 Kyle K 2009-07-26 20:39:43 UTC
Created attachment 28023 [details]
kernel log with xorg and ddx up, beware~7.4MB
Comment 4 Maarten Maathuis 2009-07-27 13:21:24 UTC
Something strange happened which is preventing tiled frontbuffers working on NVA0 gpus, darktama is aware of it, but no solution has been found by him.

The reason for the fuzzy image i do not know.
Comment 5 Kyle K 2009-07-28 23:47:32 UTC
I narrowed down the 'blinkage' issue to commit "drm/nouveau: allow entire 0x0002xxxx range in VBIOS parser on >=nv50", http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=66125505c3ac0e201e8286c777be46f3b415ff53, this is what makes my NVA0 go crazy. I'm really happy that it all went well, my first time git bisecting anything...For each nouveau.ko that I build I had to hexedit the vermagic section/symbol to be able to insert the module into the current running kernel since vergmagic was always different after every compile (and I had to end with same filesize otherwise it wouldn't load!?). Is there a better way to do it? From what I read there's other way to do, e.g. strip .modinfo symbol but this never worked for me (objcopy -N .modinfo mod.ko mod-stripped.ko)

stillunknown, AFAIK the fuzzy screen was a result of blinkage. Also the exapixmaps/tiles work for me now. There was at least 1 other person on the IRC that described similar blinking issue, I will try to make a video of what I was experiencing ;).
Comment 6 Kyle K 2009-07-29 00:58:30 UTC
Here's what was happening, next time I will need to use Windows(TM) to record and be able to set my webcam to 30fps instead of 5fps :(.

http://www.youtube.com/watch?v=TlqSOv8UyQg
Comment 7 Ben Skeggs 2009-07-29 02:50:57 UTC
Are you 100% certain that's the commit?  Unless you're resuming from suspend, that code should have no effect, unless simply reading from one of the regs in your VBIOS scripts causes it..


I'd be curious for logs of "modprobe drm debug=1; modprobe nouveau modeset=1" both with and without that commit.

Thanks!
Comment 10 Kyle K 2009-07-29 04:30:31 UTC
"drm/nouveau: implement init table opcode 0x97" http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=7992783bc72309bf4e1323097078406c4588adec is the newest commit that works

starting from "drm/nouveau: allow entire 0x0002xxxx range in VBIOS parser on >=nv50" I get blinking screen, I confirmed it with "drm/nv50: fix bogus warning when running analog output scripts" which happens to be a one liner.

For each module I did a cold-boot.
Comment 11 Kyle K 2009-07-30 14:12:58 UTC
I noticed something interesting with 0x00020074 register, if you look at the logs, when this register is omitted/tagged as unknown everything works fine. Currently with git code this is what's happening:

nouveau 0000:01:00.0: 	Write: Reg: 0x00020074, Data: 0x80000000

while the mmiotrace from 190.18 blob shows this:

R 4 222.638450 3 0xfa020074 0x90000000 0x0 0
W 4 222.638466 3 0xfa020074 0x90010000 0x0 0
...
R 4 222.638579 3 0xfa020074 0x90010000 0x0 0
W 4 222.638594 3 0xfa020074 0x90010000 0x0 0

notice that blob writes 0x90010000 to that registers, do we know what this register does?


 


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.