Bug 72555

Summary: GMA3600 Cedarview blanking on xrandr rotation using gma500_gfx with modesetting
Product: DRI Reporter: Wolfgang Silbermayr <wolfgang>
Component: DRM/otherAssignee: Patrik Jakobsson <patrik.r.jakobsson>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: medium CC: dominik, lifeunleaded, mr_hankeys8rd, patrik.r.jakobsson
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log
none
Kernel version information
none
lspci output
none
lsmod output
none
CPU information (/proc/cpuinfo)
none
Kernel messages when rotating the screen with xrandr (kernel booted with "drm.debug=14 log_buf_len=16M" parameters) none

Description Wolfgang Silbermayr 2013-12-10 06:53:27 UTC
On a PC with an Atom N2600 processor and an integrated Poulsbo gpu, rotation using xrandr causes the screen to go blank. It actually seems to
work, the system does not crash, just the screen goes blank, and when
setting it back to normal rotation, it comes back to display. Setting
rotation to inverted has no effect at all. The rotation produces some output in Xorg.0.log:

[   220.740] (II) modesetting(0): Allocate new frame buffer 1024x768 stride
[   225.507] (II) modesetting(0): Allocate new frame buffer 768x1024 stride
Comment 1 Wolfgang Silbermayr 2013-12-10 06:53:56 UTC
Created attachment 90551 [details]
Xorg log
Comment 2 Wolfgang Silbermayr 2013-12-10 06:54:26 UTC
Created attachment 90552 [details]
Kernel version information
Comment 3 Wolfgang Silbermayr 2013-12-10 06:54:45 UTC
Created attachment 90553 [details]
lspci output
Comment 4 Wolfgang Silbermayr 2013-12-10 06:55:00 UTC
Created attachment 90554 [details]
lsmod output
Comment 5 Wolfgang Silbermayr 2013-12-10 06:55:18 UTC
Created attachment 90555 [details]
CPU information (/proc/cpuinfo)
Comment 6 Carlos Alberto Lopez Perez 2014-02-10 13:14:08 UTC
I can confirm this issue. Using a Fedora 20 live image every time I rotate the screen with xrandr it goes blank. When I rotate back to normal the screen works back.

On the Xorg log, this can be seen every time you rotate it:

(II) modesetting(0): EDID vendor "CMO", prod id 4137
(II) modesetting(0): Printing DDC gathered Modelines:
modesetting(0): Modeline "1366x768"x0.0   75.01  1366 1399 1468 1553  768 772 784 805 -hsync -vsync (48.3 kHz eP)
(II) modesetting(0): Allocate new frame buffer 1366x768 stride
(II) modesetting(0): EDID vendor "CMO", prod id 4137
(II) modesetting(0): Printing DDC gathered Modelines:
(II) modesetting(0): Modeline "1366x768"x0.0   75.01  1366 1399 1468 1553  768 772 784 805 -hsync -vsync (48.3 kHz eP)


I'm updating the subject to be more accurate. I also have an Atom N2600, but the GPU is not a Poulsbo based one, but a GMA3600 (also known as Cedarview/Cedartrail) although the same kernel driver (gma500) is used for both.
Comment 7 Patrik Jakobsson 2014-02-10 14:03:22 UTC
Hi,

There is no rotation support in gma500 at the moment. On gma500/600 it is possible to use the blitter (with some overhead) but on Cedarview it seems the blitter is not available (checked on 0x0be1-0x0be2) so it must be done by the 3D engine or in software. I'm trying to solve this but I'm not sure if it will eat to much CPU to be useful on Cedarview.

180 degrees of rotation can be done directly with the pipe but I assume you're looking for left-right rotations.

Cheers
Patrik
Comment 8 Carlos Alberto Lopez Perez 2014-02-10 21:23:53 UTC
Created attachment 93805 [details]
Kernel messages when rotating the screen with xrandr (kernel booted with "drm.debug=14 log_buf_len=16M" parameters)
Comment 9 Carlos Alberto Lopez Perez 2014-02-10 21:25:19 UTC
> 180 degrees of rotation can be done directly with the pipe but I assume you're looking for left-right rotations.

Yes. I'm interested in [90,180,270] rotations. 

This is for an Intel Classmate laptop [Atom N2600] where a daemon rotates the screen (via xrandr) according to the position of the laptop (it has an accelerometer).

With the fbdev DDX driver I can start the Xorg server with the screen rotated (via the option "rotate" on the "device" section of xorg.conf), but I can't change the rotation without restarting the Xorg server (xrandr is not implemented). Also the performance with the screen rotated is very poor. For example playing a SD video (360p) makes it very choppy/jerky.
 
With the modesetting DDX rotating the screen via xrandr just makes it black. You can recover it by rotating it back to normal position. I have just attached the kernel drm debug messages when the rotation happens
Comment 10 Martin Peres 2019-10-14 13:20:21 UTC
Hi,

Freedesktop's Bugzilla instance is EOLed and open bugs are about to be migrated to http://gitlab.freedesktop.org.

To avoid migrating out of date bugs, I am now closing all the bugs that did not see any activity in the past year. If the issue is still happening, please create a new bug in the relevant project at https://gitlab.freedesktop.org/drm (use misc by default).

Sorry about the noise!

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.