Bug 108832

Summary: Cursor flickering on switching between cursor types
Product: xorg Reporter: marlock9
Component: Driver/AMDgpuAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: marlock9
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description marlock9 2018-11-22 14:03:47 UTC
Copy of https://bugs.kde.org/show_bug.cgi?id=400097

Creating bug here because with help of KDE developer I have investigated it is amdgpu bug.

For example, I'm moving cursor arrow on text. Before it turns to "I" for text selecting I clearly see the intermediate cursor texture (can't see what type is it) located right or left from current cursor position. Same when I moving cursor arrow to the border of screen to resize. It looks like glitch or flickering.

It's lasting for about 2 years on different distributions.

https://drive.google.com/file/d/1bV7okri0I95tkCOqo-6Z-axnN3-BXk9U/view?usp=sharing

Above is link to a slo-mo video. You can clearly see what's happening when I'm moving cursor straight down from text:
1. "I" cursor
2. Arrow cursor appears 5 px left from "I" cursor
3. Arrow cursor leaps to the 15 px right-down diagonal

On the monitor it looks like flickering jumping of cursor.

amdgpu 18.0.1
libdrm-amdgpu1 2.4.91
linux 4.19.0
Radeon RX 570.

So, kde developer said:

"The issue is very likely in the video drivers, possibly not correctly syncronizing cursor position and cursor shape updates. I suggest to report it to the developers of your video drivers (your distribution might help to locate these)."

Finally, I have some experiments with video driver settings and I have no issues with such options in 20-amdgpu.conf:

Option "SWcursor" "true"
Option "TearFree" "true"

Truly said, only enabling SWcursor is enough for get rid of this bug but right after appears so much tearing (due to "KMS Pageflipping: disabled because of SWcursor" I suggest) so I needed to enable TearFree.
Comment 1 Dieter Nützel 2018-11-22 14:19:56 UTC
Maybe duplicate of Bug #106175.

Can you please verify if patch from comment #55,
attachment 142558 [details] [review] solve it?
Comment 3 marlock9 2018-11-24 07:04:38 UTC
Hello all!

(In reply to Michel Dänzer from comment #2)
> Does
> https://gitlab.freedesktop.org/daenzer/xf86-video-amdgpu/commits/cursor-
> double-buffer fix it?

Yes, it does.


(In reply to Dieter Nützel from comment #1)
> Maybe duplicate of Bug #106175.
> 
> Can you please verify if patch from comment #55,
> attachment 142558 [details] [review] [review] solve it?

I will reply some time later. But don't you think that restoring old behaviour (as far as I understand, this is exactly what is happening) is a dirty workaround?
Comment 4 marlock9 2018-11-24 13:35:33 UTC
(In reply to Dieter Nützel from comment #1)
> Maybe duplicate of Bug #106175.
> 
> Can you please verify if patch from comment #55,
> attachment 142558 [details] [review] [review] solve it?

Finally I have recompile amdgpu module with this patch. This is not solving my issue, flickering still present, but I notice smoothness of pointer movement.
Comment 5 Michel Dänzer 2018-11-27 16:32:48 UTC
Merge request submitted for review: https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/merge_requests/14
Comment 6 Michel Dänzer 2018-12-13 11:45:49 UTC
The fix is now merged, thanks for the report and testing.

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.