https://bugs.kde.org/show_bug.cgi?id=447792
Bug ID: 447792
Summary: cmdline video option "reflect_x" isn't applied
Product: kwin
Version: 5.23.4
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: platform-drm
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 145025
--> https://bugs.kde.org/attachment.cgi?id=145025&action=edit
Screenshot showing the issue
SUMMARY
On device samsung-serranove, the screen natively shows a mirrored image.
Flipping the screen in the kernel is not implemented yet. In distribution
postmarketOS we compensate this by adding "video=540x960,reflect_x" to the boot
cmdline [1].
On Plasma Mobile with KWin version 5.22.4, the screen is ok after boot. When
rotating the device, auto-rotate rotates the screen. This results in a mirrored
image.
With KWin version 5.23.4, the screen shows a mirrored image right after boot.
It remains mirrored after auto-rotation.
Between those versions, at 5.22.90, there was a commit "drm: Use KScreen's json
files to set up the initial output composition" [2]. So I guess in KWin 5.22.4
the configuration was first read from ~/.config/kwinrc and upon auto-rotation
it was read from ~/.local/share/kscreen/. In KWin 5.23.4 it's read from
~/.local/share/kscreen/. right away.
Using the package "drm_info" to have a better insight, I can see that on KWin
5.22.4 after boot the "rotation" property of the drm plane 0 is at "(rotate-0 |
reflect-x)". After auto-rotation it's changed to "(rotate-0)" only. On KWin
5.23.4 it's on "(rotate-0)" only from the beginning.
As far as I can see, KScreen doesn't support screen flipping/reflecting [3]
[4]. Presumably because of this, the reflect-x of the drm plane get's lost as
soon as KScreen comes in.
Well, I guess this comes down to KScreen missing this feature.
[1] https://www.kernel.org/doc/html/v5.15/fb/modedb.html
[2] https://invent.kde.org/plasma/kwin/-/merge_requests/944
[3]
https://invent.kde.org/plasma/libkscreen/-/blob/v5.23.4/backends/kwayland/waylandoutputdevice.cpp#L101
[4]
https://invent.kde.org/plasma/kwin/-/blob/v5.23.4/src/plugins/platforms/drm/drm_backend.cpp#L445-467
STEPS TO REPRODUCE
Unfortunately, this cannot be reproduced on many desktops or laptops. Many
cards don't support refect-x. Whether it's supported can be checked by
installing package drm-info, type "drm_info | less", checking if "rotation"
property is listed for plane 0 and if it's capable to do "reflect-x". On Debian
or Ubuntu, the package is available on bullseye and hirsute or higher.
If the card is able to do reflect-x, the issue can be reproduced artificiallly.
I could not test this because my desktop/laptop cards don't support
"reflect-x".
1. Make sure in Plasma Settings -> Display -> the rotation is set to "No
Roation".
2. Get the screen resolution, e.g. by something like cat
/sys/class/graphics/fb0/modes.
3. Add something like "video=1280x1024,reflect_x" to the boot cmdline.
4a. On KWin 5.22.4, after reboot, the screen should be
flipped/reflected/mirrored. When now going to Plasma Settings -> Display ->
change the rotation to something, the "reflect-x" will get lost and the screen
isn't mirrored anymore.
4b. On KWin 5.23.4, when reaching Plasma after reboot, "reflect-x" will get
lost directly.
OBSERVED RESULT
On KWin 5.23.4, boot cmdline video parameter "reflect_x" gets lost. Also there
seems no other possibility to flip the screen.
On KWin 5.22.4, this happens after rotating the screen (KScreen).
EXPECTED RESULT
Ability to reflect/flip the screeen if needed, e.g. by cmdline video parameter
"reflect_x".
SOFTWARE/OS VERSIONS
Operating System: postmarketOS v21.12 / Plasma Mobile
KDE Plasma Version: 5.23.4
KDE Frameworks Version: 5.89.0
Qt Version: 5.15.3
Kernel Version: 5.15.0-msm8916 (armv7)
OS Type: 32-bit
Graphics Platform: Wayland
Processors: 4 × 1.2 GHz Quad-core Cortex-A53
Memory: 1.4 GiB of RAM
Graphics Processor: Adreno 305
ADDITIONAL INFORMATION
none
--
You are receiving this mail because:
You are watching all bug changes.