** 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     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to