** Changed in: jockey
Assignee: Registry Administrators (registry) => (unassigned)
** Changed in: jockey (Ubuntu)
Assignee: Registry Administrators (registry) => (unassigned)
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to jockey in Ubuntu.
https://bugs.launchpad.net/bugs/151141
Title:
When switching from nv to nvidia driver lose screen resolution; nvidia
doesn't use EDID freq. data even though that data is correct
Status in Jockey:
Fix Released
Status in Restricted Manager:
Won't Fix
Status in jockey package in Ubuntu:
Fix Released
Status in linux-restricted-modules-2.6.24 package in Ubuntu:
Fix Released
Status in restricted-manager package in Ubuntu:
Fix Released
Bug description:
nvidia driver, unlike nv driver, doesn't try to use EDID data that is
correct
This is related to problem 3731. Possibly a dup of 105967, related to
nvidia-glx
Its particular circumstances:
1. Resolution is fine with nv driver, but after using the Restricted Drivers
Manager to
go from the nv driver to the nvidia driver high resolutions are lost
2. The monitor returns correct EDID data, as demonstrated by "xresprobe nv"
and
"xresprobe nvidia".
My card uses the nvidia-glx-legacy drivers. I was trying to use compiz, but
this
problem seems to be driver related, not compiz related. Because of compiz many
people with EDID compliant monitors might try to use the restricted driver
manager
with nvidia cards, so this issue might grow in importance with the release of
Gutsy.
Detail:
Examining the xorg.conf files and Xorg.0.log files I saw that the nvidia
driver constrained
the resolution by comparing the requirements against a different,
conservative, set
of HorizSync and VertRefresh settings--apparently driver defaults. The nv
driver had been
using the monitor-returned EDID frequency results and was therefore allowing
higher
resolutions.
Further examination of more detailed xorg logs showed that the nvidia driver
was
retrieving the EDID frequency data, but just not using it.
Using the strings command on the nvidia X driver I saw the driver had an
option called
"UseEDIDFreqs" . I found that the nvidia-xconfig program from the package of
the
same name has an option of --use-edid-freqs which inserts the UseEDIDFreqs
option into
the xorg.conf file.
Note that this program's advanced help (nvidia-xconfig -A) explains the
option and
says that this option will override the HorizSync and VertRefresh ranges
given in
the xorg.conf monitors section with the equipment returned EDID data.
I confirmed this through testing.
A Suggested solution:
Have Restricted Drivers Manager add another Option line to the xorg.conf
output
when it changes it to use the nvidia driver--
Option "UseEDIDFreqs" "True"
Sample code change to Restricted Drivers Manager nvidia.py, a one
line change:
=======================================================
--- nvidia.py_orig 2007-10-08 22:32:08.000000000 -0400
+++ nvidia.py_new 2007-10-09 16:34:39.000000000 -0400
@@ -38,21 +38,22 @@
# compiz does not work otherwise
self.xorg_conf.getSections('Screen')[0].defaultdepth = 24
class LegacyNvidiaDriver(NvidiaDriver):
is_handler = True
name = "nvidia_legacy"
def __init__(self, module):
NvidiaDriver.__init__(self, module, "nvidia-glx-legacy",
- {"AllowGLXWithComposite": "True", "NoLogo": "True"})
+ {"AllowGLXWithComposite": "True", "NoLogo": "True",
+ "UseEdidFreqs": "True"})
def description(self):
return _("NVIDIA accelerated graphics driver (legacy cards)")
class NewNvidiaDriver(NvidiaDriver):
is_handler = True
name = "nvidia_new"
def __init__(self, module):
=========================================================
I tested the option by editing xorg.conf by hand. It worked for me.
I then made the above change to the restricted driver manager and
it successfully allowed the plug and play function of xorg to
enable the proper higher resolutions and set the resolution to the
resolution nv used.
(After the modification was made I used the restricted driver manager
to disable the restricted driver, then used it again to enable the
driver, running the modified code. That's what worked)
Note 1:
While this would help plug and play work with properly working monitors and
video
cards, people with equipment returning bad EDID data with the nvidia
restricted
driver would still like to override the horizontal and vertical frequencies by
way of the file. I was able to confirm that the nvidia driver will choose the
EDID information over the HorizSync and VertRefresh options in the xorg.conf
file.
While plug and play with standards compliant equipment should probably be a
priority,
the need to continue to address the needs of those with malfunctioning
equipment
should probably continue to be addressed.
Perhaps the new displayconfig-gtk should add the
IgnoreEDID option so the xorg.conf file it produces will override the EDID
data.
I confirmed through testing that with the nvidia driver the IgnoreEDID data
does
overrule the UseEDIDFreqs option if both are present in the file. Perhaps
the insertion of IgnoreEDID by displayconfig-gtk in the monitor section
would be a good precaution anyway in case there is bad EDID data of other
sorts which might otherwise overrule the contents of the config file.
Note 2:
I'm a newbie and this is my first bug report. Please forgive and correct me
if I've violated any protocol or done anything wrong.
To manage notifications about this bug go to:
https://bugs.launchpad.net/jockey/+bug/151141/+subscriptions
--
Mailing list: https://launchpad.net/~desktop-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help : https://help.launchpad.net/ListHelp