Bug 72555 - GMA3600 Cedarview blanking on xrandr rotation using gma500_gfx with modesetting
Summary: GMA3600 Cedarview blanking on xrandr rotation using gma500_gfx with modesetting
Status: NEW
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/other (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Patrik Jakobsson
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-10 06:53 UTC by Wolfgang Silbermayr
Modified: 2018-05-10 21:30 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg log (23.98 KB, text/plain)
2013-12-10 06:53 UTC, Wolfgang Silbermayr
no flags Details
Kernel version information (111 bytes, text/plain)
2013-12-10 06:54 UTC, Wolfgang Silbermayr
no flags Details
lspci output (1.22 KB, text/plain)
2013-12-10 06:54 UTC, Wolfgang Silbermayr
no flags Details
lsmod output (2.39 KB, text/plain)
2013-12-10 06:55 UTC, Wolfgang Silbermayr
no flags Details
CPU information (/proc/cpuinfo) (3.01 KB, text/plain)
2013-12-10 06:55 UTC, Wolfgang Silbermayr
no flags Details
Kernel messages when rotating the screen with xrandr (kernel booted with "drm.debug=14 log_buf_len=16M" parameters) (10.79 KB, text/plain)
2014-02-10 21:23 UTC, Carlos Alberto Lopez Perez
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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


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.