! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
extra displays config breaks desktop resolution settings after video card upg...
Status:
RESOLVED: FIXED
Product:
Xfce4-settings
Component:
Display Settings

Comments

Description Forest 2012-09-25 19:33:27 CEST
I recently replaced my nVidia video card with a new one.  After playing a game that changed my desktop resolution from 1920x1200 to 640x480, I tried using the xfce Display control panel to revert the change.  The panel allowed me to select 1920x1200 again, and it asked me whether to keep that resolution, but it didn't actually change the screen resolution to 1920x1200.  It seemed to think it had changed to 1920x1200 when it was actually still using 640x480.  To make matters worse, logging out would return me to the correct resolution as the display manager took over, but logging back in would again switch to 640x480 while xfce was running.

Some digging through config files revealed that ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml contained *two* display entries.  It looked something like this:

<?xml version="1.0" encoding="UTF-8"?>

<channel name="displays" version="1.0">
  <property name="Default" type="empty">
    <property name="default" type="string" value="default">
      <property name="Active" type="bool" value="true"/>
      <property name="Resolution" type="string" value="1920x1200"/>
      <property name="RefreshRate" type="double" value="50.000000"/>
      <property name="Rotation" type="int" value="0"/>
      <property name="Reflection" type="string" value="0"/>
      <property name="Primary" type="bool" value="true"/>
      <property name="Position" type="empty">
        <property name="X" type="int" value="0"/>
        <property name="Y" type="int" value="0"/>
      </property>
    </property>
    <property name="DVI-I-1" type="string" value="Digital display">
      <property name="Active" type="bool" value="true"/>
      <property name="Resolution" type="string" value="640x480"/>
      <property name="RefreshRate" type="double" value="59.950171"/>
      <property name="Rotation" type="int" value="0"/>
      <property name="Reflection" type="string" value="0"/>
      <property name="Primary" type="bool" value="true"/>
      <property name="Position" type="empty">
        <property name="X" type="int" value="0"/>
        <property name="Y" type="int" value="0"/>
      </property>
    </property>
  </property>
</channel>

Note: the Active, RefreshRate, and Primary values in DVI-I-1 above may have been different when I was having the problem.  I forgot to capture the file in its original bad state before I started playing with those settings.  The glaringly obvious problem is still shown, though, which is that the Display control panel seemed to be updating the "default" display section while the desktop seemed to be following whatever was in the "DVI-I-1" section.

I have never had two displays, so I imagine the extra entry might have been added when I switched to the new video card, or perhaps months ago when I upgraded XUbuntu from Oneiric to Precise.

In an attempt to fix the problem, I deleted the displays.xml, logged out, logged back in, and opened the Displays panel again.  The file now looks like this:

<?xml version="1.0" encoding="UTF-8"?>

<channel name="displays" version="1.0">
  <property name="Default" type="empty">
    <property name="DVI-I-1" type="string" value="Digital display">
      <property name="Active" type="bool" value="true"/>
      <property name="Resolution" type="string" value="1920x1200"/>
      <property name="RefreshRate" type="double" value="59.950171"/>
      <property name="Rotation" type="int" value="0"/>
      <property name="Reflection" type="string" value="0"/>
      <property name="Primary" type="bool" value="false"/>
      <property name="Position" type="empty">
        <property name="X" type="int" value="0"/>
        <property name="Y" type="int" value="0"/>
      </property>
    </property>
  </property>
</channel>

Things seem to be working mostly as expected now.  My preferred resolution is holding.  However, I did notice that changing the resolution in the Display control panel and then answering "no" when it asks whether to keep the new resolution does not actually revert to my previous resoluion.  A different bug, perhaps?
Comment 1 Lionel Le Folgoc 2012-12-06 20:41:15 CET
> <property name="default" type="string" value="default">

Do you use the nvidia proprietary driver? From what I could see (I don't own any nvidia card), "default" is used by nvidia in some conditions, and it usually indicates missing randr support. Does the xrandr command line tool work fine?

Are you using any weird nvidia specific setup? (e.g. on different xserver xorg per screen)

(but then again it might depend on the exact proprietary driver version used, I asked some people to test the display dialog from git and it worked fine for them...)
Comment 2 Lionel Le Folgoc 2012-12-06 20:42:09 CET
(In reply to comment #1)
> Are you using any weird nvidia specific setup? (e.g. on different xserver
> xorg per screen)
> 

one* different server per screen
Comment 3 Forest 2012-12-06 20:50:07 CET
(In reply to comment #1)
> Do you use the nvidia proprietary driver? 

Yes.

> Does the xrandr command line tool work fine?

I don't know; I so rarely have reason to use that tool that I forgot it existed.  It appears to print sane output right now.  (Then again, I switched from xubuntu precise to quantal yesterday and I haven't run into the original problem yet.)

> Are you using any weird nvidia specific setup? (e.g. on different xserver
> xorg per screen)

No.  One display, one card, one X server.
Comment 4 Forest 2012-12-06 20:50:54 CET
$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
   1920x1200      60.0*+
   1680x1050      60.0  
   1600x1200      60.0  
   1280x1024      76.0     75.0     72.0     60.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3  
   640x480        75.0     72.8     59.9  
   640x350        70.1  
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
Comment 5 Forest 2012-12-06 21:04:43 CET
Experimenting with resolution changes in the xfce Display GUI yield some odd results:


Changing 1920x1200 -> 1680x1050 works, but pressing "Restore the Previous  does not.  Now displays.xml says 1920x1200, GUI says 1680x1050, desktop is at 1680x1050, and xrandr says this:
...
DVI-I-1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 520mm x 330mm
   1920x1200      60.0 +
   1680x1050      60.0* 
...


Changing 1680x1050 -> 1920x1200 does nothing.  It's as if I never touched anything in the GUI.


Changing 1680x1050 -> 1920x1200 a second time works.  Now displays.xml says 1920x1200, GUI says 1920x1200, desktop is at 1920x1200, and xrandr says this:
...
DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 324mm
   1920x1200      60.0*+
...


Throughout these experiments, displays.xml had only one display section.
Comment 6 Lionel Le Folgoc 2012-12-06 21:21:08 CET
> Experimenting with resolution changes in the xfce Display GUI yield some odd results:
>

Thanks for testing. That's a known bug of xfsettingsd 4.10 (usually invisible with intel but easily reproducible with nvidia): the new resolution is set before setting the global screen dimensions, and that's incorrect, because randr doesn't allow to set a resolution larger than the screen (so basically, 1920x1200 -> 1680x1050 works because 1680x1050 fits in 1920x1200, but the opposite obviously fails... It works the second time, because the new screen size was set the first time although the resolution change failed).

That's fixed in xfce4-settings 4.11, which you can find in a ppa maintained by Xubuntu Developers: <https://launchpad.net/~xubuntu-dev/+archive/xfce-4.12> (it should be fairly stable, although that's a development release, so there's always a risk, but one of the developers was using xubuntu with nvidia ;-).

> Throughout these experiments, displays.xml had only one display section.
>

Ok, let's assume it was specific to the nvidia driver version shipped with precise... (I'll close the bug report later in the next weeks when you've spent a bit more time on quantal, just to be sure).
Comment 7 Sean Davis editbugs 2015-01-31 13:28:38 CET
With no further comments, marking this issue as fixed.  Thanks!

Bug #9333

Reported by:
Forest
Reported on: 2012-09-25
Last modified on: 2015-01-31

People

Assignee:
Jérôme Guelfucci
CC List:
6 users

Version

Attachments

Additional information