Bug 457685
Summary: | xscreensaver occupies partial area on a two-monitor setup | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | aten <atenrok> | ||||
Component: | xscreensaver | Assignee: | Mamoru TASAKA <mtasaka> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 8 | CC: | billcrawford1970, jwz, mtasaka | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2008-08-13 02:04:36 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
aten
2008-08-03 15:05:58 UTC
CCing to jwz First of all: To make it sure that you are not using gnome-screensaver, would you remove gnome-screensaver and xscreensaver-gl-extras-gss then re-login? (In reply to comment #2) > First of all: > > To make it sure that you are not using gnome-screensaver, would you > remove gnome-screensaver and xscreensaver-gl-extras-gss then re-login? just did. Same result > xscreensaver: 08:46:46: Xinerama > xscreensaver: 08:46:46: Resize-and-Rotate This says that your X server supports the Xinerama and RANDR extensions. This is good. > xscreensaver: 08:46:46: screens in use: 1 > xscreensaver: 08:46:46: 0/0: 2480x1050+0+0 (default) This says that your server is claiming that you have a *single monitor* that is 2480x1050, instead of two monitors. This is bad. Please build and run the "test-xinerama" and "test-randr" programs from the xscreensaver-5.06/driver/ src directory, and paste the results here. oleksandr: Please use: http://kojipkgs.fedoraproject.org/packages/xscreensaver/5.06/2.fc8.1/ if you find it rather difficult to compile xscreensaver by yourself. I have created "xscreensaver-tests" rpm, in which test-xinerama and so on is included. Jamie, (In reply to comment #4) > > xscreensaver: 08:46:46: Xinerama > > xscreensaver: 08:46:46: Resize-and-Rotate > > This says that your X server supports the Xinerama and RANDR extensions. This > is good. > > > xscreensaver: 08:46:46: screens in use: 1 > > xscreensaver: 08:46:46: 0/0: 2480x1050+0+0 (default) > > This says that your server is claiming that you have a *single monitor* that is > 2480x1050, instead of two monitors. This is bad. > > Please build and run the "test-xinerama" and "test-randr" programs from the > xscreensaver-5.06/driver/ src directory, and paste the results here. here is the output: $ ./test-xinerama test-xinerama: 10:42:57: XineramaQueryExtension(dpy, ...) ==> 0, 0 test-xinerama: 10:42:57: XineramaIsActive(dpy) ==> True test-xinerama: 10:42:57: XineramaQueryVersion(dpy, ...) ==> 1, 1 test-xinerama: 10:42:57: 2 Xinerama screens test-xinerama: 10:42:57: screen 0: 1680x1050+0+0 test-xinerama: 10:42:57: screen 1: 800x600+1680+0 $ ./test-randr test-randr: 10:43:09: XRRQueryExtension(dpy, ...) ==> 119, 185 test-randr: 10:43:09: XRRQueryVersion(dpy, ...) ==> 1, 2 test-randr: 10:43:09: Screen 0 test-randr: 10:43:09: Available Rotations: 0 test-randr: 10:43:09: Current Rotation: 0 test-randr: 10:43:09: Available Reflections: none test-randr: 10:43:09: Current Reflections: none test-randr: 10:43:09: + size 0: 2480 x 1050 rates: 50 test-randr: 10:43:09: Output 0: default: connected (427) test-randr: 10:43:09: + CRTC 0 (427): 2480x1050+0+0 test-randr: awaiting events... ^C I had to interrupt test-randr since it has been waiting forever and I'm not sure what are those events. Mamoru, I appreciate the rpms. > test-xinerama: 10:42:57: screen 0: 1680x1050+0+0
> test-xinerama: 10:42:57: screen 1: 800x600+1680+0
> ...
> test-randr: 10:43:09: Output 0: default: connected (427)
> test-randr: 10:43:09: + CRTC 0 (427): 2480x1050+0+0
Well. Xinerama says you have two screens, RANDR says you have one. Since you actually do have two, I'd say this is obviously a bug in RANDR. I thought Xinerama was now provided *by* the RANDR extension, but apparently not. You've got two different extensions in the server providing conflicting information. I'm listening to RANDR, because that's the more modern one, and it (normally) provides info that Xinerama does not.
So I suggest you reassign this to the RANDR maintainers.
In the meantime, you can make it work by recompiling your copy of xscreensaver --without-randr-ext.
> So I suggest you reassign this to the RANDR maintainers. I would be happy to do that if someone told me how. > > In the meantime, you can make it work by recompiling your copy of xscreensaver > --without-randr-ext. Thanks for suggestion, I'll consider this. Once changing the component to libXrandr. xgl maintainer, would you help? In case noone noticed, this appears to be the nvidia binary driver, so I'm not sure that libXrandr maintainer can do anything about it ... Created attachment 313848 [details]
xscreensaver nvidia bug workaround
It is still very obvious to me that this is a bug in the X server and/or the nvidia driver. However, this patch to xscreensaver should work around it, at least in simple cases. Can you please try this out and let me know? This patch is against xscreensaver/driver/screens.c from the 5.06 release.
Whether it works or not, I'd like to see the -verbose output that it prints. Thanks.
Oh, and for the record, I got this response from nvidia. I find their proposed solution very silly. From: Aaron Plattner <aplattner> Date: August 7, 2008 10:21:25 AM PDT To: linux-bugs The NVIDIA X driver does not yet support RandR 1.2. The X server has a compatibility layer in it that allows RandR 1.2 clients to talk to RandR 1.1 drivers through an RandR 1.2 pseudo-output called "default". This reports the total combined resolution of the TwinView display, since it doesn't have any visibility into TwinView metamodes. There is no way for the driver to prevent the server from turning on this compatibility layer. The intention is for X client applications to continue to use the Xinerama extension to query the screen geometry. RandR 1.2 reports its own Xinerama info for this purpose. I would recommend against modifying xscreensaver to try to get this information from RandR. xscreensaver-5.06-3.fc8 is rebuilt with the patch on comment 11 applied. oleksandr, would you try this? http://kojipkgs.fedoraproject.org/packages/xscreensaver/5.06/3.fc8/ (In reply to comment #13) > xscreensaver-5.06-3.fc8 is rebuilt with the patch on comment 11 applied. > oleksandr, would you try this? > > http://kojipkgs.fedoraproject.org/packages/xscreensaver/5.06/3.fc8/ damn you are fast. I barely had time to read my mail and you already have the RPMs built. Thanks a bunch, that saves whole lot of time. Long story short - my screensavers are back on the separate monitors, and the unlock dialog box appears on the right position. Everything worksa like a c Beautiful job Jamie, I kindly appreciate that. here is the verbose log: $ xscreensaver -verbose xscreensaver 5.06, copyright (c) 1991-2008 by Jamie Zawinski <jwz>. xscreensaver: 01:07:43: running as sashko/users (501/100) xscreensaver: 01:07:43: in process 24125. xscreensaver: 01:07:43: WARNING: RANDR reports 1 screen but Xinerama xscreensaver: 01:07:43: reports multiple. Believing Xinerama. xscreensaver: 01:07:43: running on display ":0.0" xscreensaver: 01:07:43: vendor is The X.Org Foundation, 10300000. xscreensaver: 01:07:43: useful extensions: xscreensaver: 01:07:43: MIT Screen-Saver (disabled at compile time) xscreensaver: 01:07:43: Shared Memory xscreensaver: 01:07:43: Double-Buffering xscreensaver: 01:07:43: Power Management xscreensaver: 01:07:43: GLX xscreensaver: 01:07:43: XF86 Video-Mode xscreensaver: 01:07:43: Xinerama xscreensaver: 01:07:43: Resize-and-Rotate xscreensaver: 01:07:43: screen 0 non-colormapped depths: 0 24. xscreensaver: 01:07:43: screens in use: 2 xscreensaver: 01:07:43: 0/0: 1680x1050+0+0 xscreensaver: 01:07:43: 1/0: 800x600+1680+0 xscreensaver: 01:07:43: selecting RANDR events xscreensaver: 01:07:43: consulting /proc/interrupts for keyboard activity. xscreensaver: 01:07:43: 0: visual 0x21 (TrueColor, depth: 24, cmap: default) xscreensaver: 01:07:43: 0: saver window is 0x600001. xscreensaver: 01:07:43: 1: saver window is 0x600005. xscreensaver: 01:07:43: selecting events on extant windows... done. xscreensaver: 01:07:43: awaiting idleness. Thank you all! Again once changing back the component to xscreensaver. xscreensaver-5.06-3.fc9 has been submitted as an update for Fedora 9 xscreensaver-5.06-3.fc8 has been submitted as an update for Fedora 8 xscreensaver-5.06-3.fc9 has been pushed to the Fedora 9 stable repository. If problems still persist, please make note of it in this bug report. xscreensaver-5.06-3.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report. |