Bug 15398

Summary: [Randr 1.3] display incorrect if scale screen twice from small to large
Product: xorg Reporter: WuNian <nian.wu>
Component: Server/GeneralAssignee: Keith Packard <keithp>
Status: VERIFIED FIXED QA Contact: fangxun <xunx.fang>
Severity: normal    
Priority: medium CC: jian.j.zhao
Version: gitKeywords: NEEDINFO
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log file
none
xorg.conf
none
xorg.0.log none

Description WuNian 2008-04-07 21:34:52 UTC
Created attachment 15748 [details]
xorg log file

If scale screen to small,for example: xrandr --output VGA --scale 0.5x0.5; then scale screen to large: xrandr --output VGA --scale 0.5x2; display will only occupy a part of screen, which is incorrect.

Reproduce steps:
First example:
==============
[root@x-bl1 ~]# xrandr --output VGA --scale 0.5x0.5
[root@x-bl1 ~]# xrandr --output VGA --scale 0.5x2
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  151 (RANDR)
  Minor opcode of failed request:  7 ()
  Serial number of failed request:  17
  Current serial number in output stream:  19
###now display is squeeze into 1/3 region on top, other part of screen is black.

Second example:
================
[root@x-bl1 ~]# xrandr --output VGA --scale 0.5x0.5
[root@x-bl1 ~]# xrandr --output VGA --scale 1x2

===========================================
Below is my screen initial status:
[root@x-bl1 ~]# xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2048 x 2048
VGA connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768       60.0*+
   800x600        60.3
   640x480        59.9

If change the display to large then scale to small, there is no problem:
[root@x-bl1 ~]# xrandr --output VGA --scale 1x1
[root@x-bl1 ~]# xrandr --output VGA --scale 1x2
[root@x-bl1 ~]# xrandr --output VGA --scale 0.5x0.5
Comment 1 zhao jian 2008-12-03 01:12:31 UTC
Created attachment 20756 [details]
xorg.conf
Comment 2 zhao jian 2008-12-03 01:24:37 UTC
System Environment:
--------------------------
platform: GM45 
xserver: 1.6 branch(0d902b05ad910cada46dcc2b85d8b0148aed35e6)
2D driver: master branch(5f347020a52b583e19d333361ea7bf2591255899)
kernel: drm-intel-next (00420a63d72354fecd391dd5f1b6d9cba8b1323b)
lib/libXrandr : 1.2.91 master branch (0dd24bd6ad3c437f320c5d8e922c479fb61b115f)
randrproto : master branch 1.2.99.1 (10bff0be50cf5cf314960bb85c472f1c63d37755)

There is still such problems now on GM45. I tested two examples as following:
First example:
[root@x-gm45b xrandr]# xrandr --output LVDS --scale 0.5x0.5
[root@x-gm45b xrandr]# xrandr --output LVDS --scale 0.5x2
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  148 (RANDR)
  Minor opcode of failed request:  7 ()
  Serial number of failed request:  18
  Current serial number in output stream:  20
[root@x-gm45b xrandr]# xrandr --prop
Screen 0: minimum 320 x 200, current 683 x 384, maximum 2048 x 2048
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 683x1536+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
(###now display is squeeze into 1/4 region on top, other part of screen is
black.)

Second example:
[root@x-gm45b xrandr]# xrandr --output LVDS --scale 0.5x0.5
[root@x-gm45b xrandr]# xrandr --output LVDS --scale 1.2x0.5
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  148 (RANDR)
  Minor opcode of failed request:  7 ()
  Serial number of failed request:  18
  Current serial number in output stream:  20
[root@x-gm45b xrandr]# xrandr --prop
Screen 0: minimum 320 x 200, current 683 x 384, maximum 2048 x 2048
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1640x384+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
(###now display is squeeze into 1/3 region on left, other part of screen is
black.)
Comment 3 zhao jian 2008-12-03 01:31:47 UTC
Created attachment 20757 [details]
xorg.0.log
Comment 4 fangxun 2009-09-09 20:37:59 UTC
Still fail with following commit:
Libdrm:    (master)121b9648f846d900e67818869974ee82046e9b25
Mesa:       (master)9778731732b4753e79a1b786c65325a52392411d
Xserver:       (master)1747120043cc5b5d201b7efd06b75ef08b032922
Xf86_video_intel:     (master)94fc93d4e2b88565dca17f72903d8991213c9ee8
Kernel_unstable:    (drm-intel-next)01dfba93d9dfcf6d7abfc55ff5d9d6e76fa0
Comment 5 Eugeni Dodonov 2011-08-23 12:39:33 UTC
Could you retest with latest intel stack? Looks like it was fixed, at least, I could not reproduce it anymore.
Comment 6 Gordon Jin 2011-08-25 18:05:04 UTC
Xun, please retest.
Comment 7 fangxun 2011-08-25 22:51:25 UTC
I also unable to reproduce it on gm45 and capella.
Comment 8 fangxun 2011-08-25 22:52:23 UTC
Verified with following commit on gm45 and capella.
Kernel_version:         2.6.31.12
Libdrm:         (master)2.4.26-3-g2acaf160df584a5ef7b5c5b84819389948cd97ad
Mesa:           (master)7b1972d7be8ed68676786288ac2d77b8d71d113d
Xserver:                (master)xorg-server-1.10.99.902-4-ge32cc0b4c85c78cd8743a6e1680dcc79054b57ce
Xf86_video_intel:               (master)2.16.0-6-gb9ae4e7e71527f1cf2b6dd6890420da22a22fad9

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.