Bug 104495 - RRScreenChangeNotify rotation is always zero for some screens in a multimonitor setup
Summary: RRScreenChangeNotify rotation is always zero for some screens in a multimonit...
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/Ext/RandR (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
Depends on:
Reported: 2018-01-04 19:09 UTC by Valeriy Malov
Modified: 2018-01-05 09:17 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

xev -root -event randr dumps (3.56 KB, text/plain)
2018-01-04 19:09 UTC, Valeriy Malov
no flags Details

Description Valeriy Malov 2018-01-04 19:09:13 UTC
Created attachment 136554 [details]
xev -root -event randr dumps

I have a dual screen setup. When I rotate screens e.g. via xrandr --rotate, two randr events are fired, RRScreenChangeNotify and RRNotify.

However, in some cases, RRScreenChangeNotify reports no rotation, even if the screen has been actually rotated and RRNotify reports correct value.

I've attached dumps of xev -root -event randr output for calling
$ xrandr --output *output* --rotate inverted
$ xrandr --output *output* --rotate normal
for the right screen, then for the left screen, for two setups (first is using nvidia proprietary drivers, second is using intel modesetting driver). Issue always happens for one screen but not the other and I haven't found any system yet.

This seems to break rotation monitoring in QtGui since it checks for changes in xcb_randr_screen_change_notify_event_t->rotation

xorg-server ver. 1.19.5 and libXrandr ver. 1.5.1 on both machines
Comment 1 Michel Dänzer 2018-01-05 09:17:10 UTC
Since the RRScreenChangeNotify event already existed in RandR 1.0, it only conveys pre-1.2 global information about the X11 screen as a whole, not post-1.2 per-output information. I.e. the RRScreenChangeNotify event rotation field reflects what's set via

 xrandr --orientation <...>


 xrandr --output <output> --rotate <...>

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.