Created attachment 75614 [details]
Nouveau log (dmesg)
While trying to use Nouveau driver with display that sends incorrect EDID (only FF, Samsung 226BW), screen flickers every ~10 seconds. Attached nouveau driver log.
Everything works fine and very smooth, I can pass custom modelines to X server to have 1680x1050 resolution, the only thing left that works very bad is this flicker. If this matters, my GPU is GeForce 8600 GT.
Windows 7 uses 1024x768 resolution (same as Nouveau) while installing, but without flicker.
Everytime log is filled up with new message, flicker happens.
Same Problem here. You can use the following work-around
1. mkdir [KERNEL-FIRMWARE-DIRECTORY]/edid
2. cp [MONITOR-EDID-FILE].bin [KERNEL-FIRMWARE-DIRECTORY]/edid
3. add the following to your Kernel Commandline:
This will provide kms and Friends with correct EDID-Informations. However
to stop the annoying flicker, you have to
4. add another Statement to your Kernel Commandline:
I investigated this issue a little. The flickering happens when someone runs xrandr. This is a hardware issue as the problem happens even with when using the proprietary driver. This issue got fixed starting with the geforce 8.
The desktop environment shouldn't poll on xrandr like that, so there is a bug on their side. On our side, the workaround suggested by Jan will be our "solution" until someone really wants to dig into this issue and see if there is a way to build a cache or something to avoid load detection.
In any case, I'm tempted to close this bug as "WONTFIX" but I'll wait for other devs to agree before doing so.
A bit of a (hopefully useful) information
- Whenever drm_kms_helper.poll is disabled, your vga monitor won't get automatically detected when it's not plugged in at boot.
- Iirc there are two modes when querying for info via the xrandr protocol - use cached one or re-probe.
- Original nv50 (and earlier?) hardware the blob does a plain sleep/udelay between setup and probe, while for nv92 and latter it uses a more elaborate approach (see bug 67382, comment 34). Currently nouveau uses the former method which contributes (not sure to what extend) to the flicker.