Bug 31313 - X rotates display with delay and black screen effect
Summary: X rotates display with delay and black screen effect
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Ext/RandR (show other bugs)
Version: 7.5 (2009.10)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-02 00:44 UTC by Levon
Modified: 2012-07-16 08:12 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Levon 2010-11-02 00:44:39 UTC
Hello,

When rotating X's display on the fly using xrandr -o left|normal|inverted|right command, following transitions are performed with black screen delay effect i.e. the display becomes black for a moment then displays rotated screen.

The following transitions are performed with a delay - a black screen is shown with ~1 second duration, then rotated screen appears
normal > right|left 
inverted > normal|left|right
left > normal|inverted
right > normal|inverted

The following transitions are performed smoothly with no delays, i.e. "immediately"
normal > inverted
left > right
right > left


Steps to reproduce
1. Run following on machine with xorg-x11-drv-intel 
2. In terminal run following from normal orientation : xrandr -o left

Actual result : 
Screen is rotated with delay and black screen effect then it shows normal rotated screen

Expected result : 
Should rotate screen with no delays and any black screen effect. 
Like when rotating from the right orientation to the left orientation.



Details : Most time consuming code while rotating the display orientation with xrandr is 
ret = crtc->funcs->set_mode_major(crtc, mode, rotation, x, y); 
intel video drivers function call.
This call is located in hw/xfree86/modes/xf86Crtc.c file in xf86CrtcSetModeTransform function.

HW Platforms:
Graphics : Intel GMA 3150 graphics
Graphics : Intel Graphics Media Accelerator (GMA) 950

Xorg-server 1:7.5
xserver-xorg-video-intel 2:2.11.0
xserver-xorg-video-intel 2:2.12.0
xserver-xorg-video-intel 2:2.13.0


Regards,
Levon
Comment 1 Chris Wilson 2010-11-30 06:59:16 UTC
See the proposal for per-crtc pixmaps in RandR 1.4.
Comment 2 Chris Wilson 2012-07-14 09:29:23 UTC
Randr1.4 was still born. However, this is indeed quite annoying since it should be possible to achieve a seamless transition to a rotated framebuffer in the current setup. :|
Comment 3 Chris Wilson 2012-07-16 08:03:51 UTC
This is just an unnecessary forced disable due to the crtc_disable() in apply(). Comparing xrandr.c with xserver/randr/rrcrtc.c, I think it is a workaround for randr1.0 as randr1.2 drivers handle the situation fine.
Comment 4 Chris Wilson 2012-07-16 08:12:55 UTC
Nope, actually missing a bit of protocol to change the screen size and adjust the CRTCs simultaneously.


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.