Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
Admin message
The migration is almost done, at least the rest should happen in the background. There are still a few technical difference between the old cluster and the new ones, and they are summarized in this issue. Please pay attention to the TL:DR at the end of the comment.
There's two problems I see with the primary plane rotation property being set to rotate-180 or rotate-270:
when CRTC_X or CRTC_Y of the cursor plane are negative, the whole cursor plane turns invisible
in the middle of the screen, the cursor plane gets clipped off. In some other places, there's even a stripe of the cursor appearing where it gets clipped off in the middle
Neither of these artifacts happen with rotate-0 or rotate-90.
Xaver Huglchanged title from [Ryzen 4700U, rx 6800XT] Cursor bugs with hardware rotation to [Ryzen 4700U, rx 6800XT, Steam Deck] Cursor bugs with hardware rotation
changed title from [Ryzen 4700U, rx 6800XT] Cursor bugs with hardware rotation to [Ryzen 4700U, rx 6800XT, Steam Deck] Cursor bugs with hardware rotation
Managed to test on the Deck, the cursor also disappears with hw rotation when CRTC_X or CRTC_Y are negative. In addition, I found these artifacts (at rotation-270):
VID_20221115_132133
I tested using DCN 2.1 HW with KDE development environment where I included the HW rotation change from the MR you linked. There are some hooks regarding cursor position for HUBP and DPP AMD DC blocks that they set by HW family. Checking the code of DCN 301 (Steam Deck), it seems properly hooked via generic DCN 3.0 funcs. Can you check on the HW your have available to confirm?
I tested on the Deck with kernel 6.1 and the fix_rotation_180 branch, with both the cursor doesn't disappear anymore but the weird artifacts from my other comment still happen with rotation-90 and rotation-270.
ugh, I found a weird behavior that I want to confirm if it's happening on your side. Do these artifacts appear when your deck isn't connected to charger? Or with and without the charger?
Until now I only tested without a charger. Having it plugged in, the artifacts no longer happened at first, but once I opened system settings it started again.
Can you check if this branch glitches_cursor_rotation (last comit) reduce or increase the artifacts on steam deck screen? The patch file is also attached (rebased on amd-staging-drm-next) [1]. If not, can you also try to change the same line of this commit to these other two values:
Some context: in the Deck driver, the pipe split policy is set to AVOID and therefore, there isn't pipe splitting, only one pipe. I don't see the issue in my laptop because the driver allows pipe splitting, but if I change the policy to the same of the Deck driver with only one pipe, then I can reproduce the issue when rotating screen. I'm suspecting some miscalculation around bandwidth and I see some clk values in the dst_x_offset equation. By changing the dst_x_offset value, the glitches disappear on my side, can you check if it has the same effect on your side?