Software cursor used when using meta-kms-impl-device-simple.c
Recently I replaced my AMD APU with a Ryzen 9 5950X, since that does not have an integrated GPU I dropped in an old AMD r7 250e (GCN1) card which I still had around.
By default this card uses the radeon kernel driver which does not support atomic modesetting, so it uses meta-kms-impl-device-simple.c and I have noticed 2 things which indicate a software cursor being used:
- Sometimes a part of the cursor is left behind in its old place when moving the cursor; and this cursor-residue sometime also flickers (only present in 1 of 2 buffers being flipped between?). This seems to happen mostly when crossing between my 2 monitors.
- When running with "MUTTER_DEBUG=kms" the following message is not present when using meta-kms-impl-device-simple.c: "Realizing HW cursor for cursor sprite"
AFAIK even the non atomic paths should be using a hw-cursor. They are e.g. used in virtual-machines and typically the vm mouse integration requires that a hw-cursor is used (I did not test in a vm).
But maybe not using a hw-cursor is expected when using the non-atomic paths combined with having 2 monitors? If this is expected behavior feel free to close this issue.
I'm seeing this on F39 with mutter-45.3-1.fc39.x86_64.
The problem goes away when telling the kernel to use the amdgpu driver in its "DC" mode (which does support atomic modesetting) by passing amdgpu.si_support=1 radeon.si_support=0 amdgpu.dc=1
on the kernel commandline.