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.
Graphics : Intel GMA 3150 graphics
Graphics : Intel Graphics Media Accelerator (GMA) 950
See the proposal for per-crtc pixmaps in RandR 1.4.
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. :|
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.
Nope, actually missing a bit of protocol to change the screen size and adjust the CRTCs simultaneously.
-- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/216.