Overlay plane: corrupted buffer when outside bounds of primary plane
Brief summary of the problem:
I'm using an overlay plane to display a 24x24 buffer. I'm moving it around by changing its position (CRTC_X
and CRTC_Y
).
When the overlay plane stays within the primary plane's bounds, everything is fine. However as soon as the overlay moves out of the primary plane bounds, I can see some sort of buffer corruption.
The overlay plane is in this picture used to display a 24x24 cursor image near the edge of the screen:
Some examples of corruption when I move the overlay plane to the right:
Hardware description:
- CPU: AMD Ryzen 5 3500U
- GPU: APU (PCI 1002:15d8 Advanced Micro Devices, Inc. [AMD/ATI] Picasso)
- System Memory: 6GiB
- Display(s): integrated screen
- Type of Diplay Connection: eDP
System infomration:
- Distro name and Version: Arch Linux
- Kernel version: ~agd5f/linux, drm-next branch, commit 7ff818f97c30
- Custom kernel: N/A
- AMD package version: N/A
How to reproduce the issue:
- Clone gamescope
- Apply this patch to stop setting
ALLOW_MODESET
on all commits: https://l.sr.ht/DHTC.txt - Build gamescope
- Run it with Steam and enable use of KMS planes:
build/gamescope -e -l -d -- steam -tenfoot -steamos >gamescope.log 2>&1
- Start Portal 1
- Move the cursor to the right edge of the screen
Edited by Simon Ser