Windows stretched after setting virtual screen resolution

Bug #809060 reported by Ryan Reich
18
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Unity
Won't Fix
Undecided
Sam Spilsbury
unity (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

I am trying to set a framebuffer larger than the physical screen, with panning. This causes visual garbage: other than the basic Unity desktop + launcher bar, everything appears to have been sized for the physical screen and then stretched to the virtual one. However, "logical" locations are unchanged; for example, in the logout/shutdown dropdown menu, all the names of the entries are displaced from the position which I have to click to activate them.

My computer is an Asus EeePC 1005HA, and I'm using 11.04.

To reproduce:

1. Use the xrandr command `xrandr --output LVDS1 --fb 1024x768 --panning 0x768` (output name and actual numbers depending on your setup; however, the 0x is important, as is that the vertical parts of fb and panning are equal). It might be necessary to start in the default resolution, `xrandr --output LVDS1 --fb 1024x600`.

2. Run `unity --replace`. Without this, Unity simply displays black in the extra virtual space.

The result should be as I described above.

Revision history for this message
Ryan Reich (ryan-reich) wrote :

Turns out this isn't really a bug, but just unexpected behavior. By default, Compiz autodetects outputs, and so assumes my screen is 1024x600; when I set its virtual size to 1024x768 (which is not autodetected) it simply stretches those 600 pixels into the available space. This is corrected by disabling autodetection and giving it a manual output of 1024x768 (or, as I wanted, two outputs, the other one being 1024x600+0-168, with the smaller one preferred). These changes are made in the "General options" menu in the config tool, under "display settings".

Changed in unity:
status: New → Invalid
Revision history for this message
Sam Spilsbury (smspillaz) wrote : Re: [Bug 809060] Re: Windows stretched after setting virtual screen resolution

Hmm, I wouldn't say so much that this bug is invalid. We're using
XineramaQueryScreenInfo (which uses xrandr) in order to get the
viewport dimentions, I'm pretty sure that should return the virtual
screen size and not the physical one.

I'm assigning myself for now as a task for something for me to look
into later one when I get some time.

On Tue, Jul 12, 2011 at 12:48 PM, Ryan Reich <email address hidden> wrote:
> Turns out this isn't really a bug, but just unexpected behavior.  By
> default, Compiz autodetects outputs, and so assumes my screen is
> 1024x600; when I set its virtual size to 1024x768 (which is not
> autodetected) it simply stretches those 600 pixels into the available
> space.  This is corrected by disabling autodetection and giving it a
> manual output of 1024x768 (or, as I wanted, two outputs, the other one
> being 1024x600+0-168, with the smaller one preferred).  These changes
> are made in the "General options" menu in the config tool, under
> "display settings".
>
> ** Changed in: unity
>       Status: New => Invalid
>
> --
> You received this bug notification because you are a member of Unity
> Bugs, which is subscribed to unity.
> https://bugs.launchpad.net/bugs/809060
>
> Title:
>  Windows stretched after setting virtual screen resolution
>
> Status in Unity:
>  Invalid
>
> Bug description:
>  I am trying to set a framebuffer larger than the physical screen, with
>  panning.  This causes visual garbage: other than the basic Unity
>  desktop + launcher bar, everything appears to have been sized for the
>  physical screen and then stretched to the virtual one.  However,
>  "logical" locations are unchanged; for example, in the logout/shutdown
>  dropdown menu, all the names of the entries are displaced from the
>  position which I have to click to activate them.
>
>  My computer is an Asus EeePC 1005HA, and I'm using 11.04.
>
>  To reproduce:
>
>  1. Use the xrandr command `xrandr --output LVDS1 --fb 1024x768
>  --panning 0x768` (output name and actual numbers depending on your
>  setup; however, the 0x is important, as is that the vertical parts of
>  fb and panning are equal).  It might be necessary to start in the
>  default resolution, `xrandr --output LVDS1 --fb 1024x600`.
>
>  2. Run `unity --replace`.  Without this, Unity simply displays black
>  in the extra virtual space.
>
>  The result should be as I described above.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/unity/+bug/809060/+subscriptions
>

--
Sam Spilsbury

Changed in unity:
status: Invalid → In Progress
assignee: nobody → Sam Spilsbury (smspillaz)
Changed in unity (Ubuntu):
status: New → In Progress
Revision history for this message
Jonathan Greenblatt (jon-50e) wrote :

I noticed this said affects one user. I am also affected. I have a Acer Aspire 1 with a screen resolution of 800x600. I use the following xrandr command below. The virtual screen size seems to change but when I mouse to the bottom of the screen the panning appears to be disabled. Hope this additional information is useful.

xrandr --output LVDS1 --panning 1024x768

Revision history for this message
Ryan Reich (ryan-reich) wrote :

Jonathan, have you tried adding a --fb directive to the xrandr command? For example,

xrandr --output LVDS1 --fb 1024x768 --panning 0x768

(note the 0, as I commented in my report). If you don't, then the virtual screen size should be too small to pan. Could you try that and post again whether you experience the bug I reported?

Revision history for this message
Richard Bailey (bailey937) wrote :

I think I'm seeing the same problem in a different way. I'm trying to scale instead of pan.

I have a Dell Mini 10V netbook running 11.10 Oneiric Ocelot fianl release, and I was using this script (worked fine with the old netbook-launcher-efl) to scale the screen to 1024x768 when some app shows a dialog box that doesn't fit on the 1024x600 display.

#!/bin/sh

if xrandr | head -n1 | grep -q '1024 x 600'; then
  xrandr --output LVDS1 --scale 1.0x1.28
else
  xrandr --output LVDS1 --scale 1.0x1.0
fi

When I switch to 1024x768 scaled, it draws ok, but I can't move the mouse below where the virtual Y=600 is on the screen. So I can't get at the OK button or whatever I'm trying to get at that didn't fit on 1024x600.

BTW, I really like Unity now and wouldn't go back to netbook-launcher-efl, even if I could.

Revision history for this message
Ryan Reich (ryan-reich) wrote :

I just upgraded to Ubuntu 11.10 and now this bug has a different form: xrandr does not work _at all_. The command

xrandr --output LVDS1 --fb 1024x768 --panning 1024x768

(on my 1024x600 netbook screen) does not create a larger desktop or enable panning. The only effect is that, when my mouse pushes the bottom edge of the screen, it pans infinitesimally -- maybe a few pixels. (Pushing the top edge will "pan" back.) This is not affected by making any changes in autodetection, explicit specification of output, or preferred outputs, under "General options" in the Compiz configuration tool.

Revision history for this message
Niels Huylebroeck (red15) wrote :

I can confirm Ryan Reich's issue, on ubuntu 11.10 on a laptop trying with

xrandr --fb 1366x1024 --output LVDS1 --panning 1366x1024

The LVDS resolution is 1366x768 by default, it appears to be panning for one pixel.
I've ran unity --replace but has no effect.

Revision history for this message
Richard Bailey (bailey937) wrote :

I'm pretty sure this bug is now (in 11.10) a duplicate of bug 881046

https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/881046

I got the source package for xorg-server and removed the patch

219_fedora-pointer-barriers.diff

and built it and installed the xserver-common and xserver-xorg-core packages I built

I can confirm that zoom and pan with xrandr now work for me as expected.

Before I did this, I also tried zooming (but not panning) with openbox and it had the same problem.

So I think now the problem is this patch for the X server.

Changed in unity:
status: In Progress → Opinion
status: Opinion → Invalid
Changed in unity (Ubuntu):
status: In Progress → Won't Fix
Changed in unity:
status: Invalid → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.