Bug 513810 - Cursor looks broken when larger than 64 pixels
Summary: Cursor looks broken when larger than 64 pixels
Status: REPORTED
Alias: None
Product: kwin
Classification: Plasma
Component: platform-drm (other bugs)
Version First Reported In: 6.5.4
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: accessibility
Depends on:
Blocks:
 
Reported: 2025-12-25 18:14 UTC by Tech-Tac
Modified: 2025-12-25 20:26 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tech-Tac 2025-12-25 18:14:23 UTC
SUMMARY
The mouse cursor looks completely broken when its size is set to any value above 48~64 pixels, this can also occur with smaller cursor sizes but larger screen scaling. And when apps request to set the cursor to a large bitmap.

Reproducible with the default Breeze and 3rd party cursor themes.

STEPS TO REPRODUCE
1. System Settings > Colors and themes > Cursors.
2. Set "size" to e.g. 72
3. Apply settings

OBSERVED RESULT
The cursor appears broken and somewhat stripey or glitchy, may also flash rapidly if the cursor is animated.

EXPECTED RESULT
Maybe switch to software cursor?

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch
KDE Plasma Version: 6.5.4
KDE Frameworks Version: 6.21.0
Qt Version: 6.10.1
GPU: AMD Radeon HD 7560D (TeraScale 3 "Trinity" IGP), `radeon` driver
Comment 1 David Edmundson 2025-12-25 19:51:17 UTC
Can you dump output of "drm_info" when the cursor is in this broken mode.
Comment 2 Tech-Tac 2025-12-25 20:22:07 UTC
(In reply to David Edmundson from comment #1)
> Can you dump output of "drm_info" when the cursor is in this broken mode.

name    : "radeon"
desc    : "ATI Radeon"
date    : "0"
version : v2.51.0
busid   : ""

capabilities
    DUMB_BUFFER           :   1
    VBLANK_HIGH_CRTC      :   1
    DUMB_PREFERRED_DEPTH  :  24
    DUMB_PREFER_SHADOW    :   1
    PRIME                 :   3  (import + export)
    TIMESTAMP_MONOTONIC   :   1
    ASYNC_PAGE_FLIP       :   1
    CURSOR_WIDTH          :  64
    CURSOR_HEIGHT         :  64
    ADDFB2_MODIFIERS      :   0
    PAGE_FLIP_TARGET      :   1
    CRTC_IN_VBLANK_EVENT  :   1
    SYNCOBJ               :   0

DP-1 (#52), disconnected
    encoder: TMDS (#51)

VGA-1 (#55), connected
    encoder: DAC (#53), active, crtc #44, fb #60, 1280x1024
    encoder: DAC (#54)
    mode: 1280x1024 (2x)
    mode: 1280x960
    mode: 1152x864
    mode: 1024x768 (3x)
    mode: 832x624
    mode: 800x600 (4x)
    mode: 640x480 (4x)
    mode: 720x400

DVI-D-1 (#57), disconnected
    encoder: TMDS (#56)

plane: 43, crtc: 44, fb: 60, type: primary
    formats: XR24 AR24

plane: 45, crtc: 0, fb: 0, type: primary
    formats: XR24 AR24

plane: 47, crtc: 0, fb: 0, type: primary
    formats: XR24 AR24

plane: 49, crtc: 0, fb: 0, type: primary
    formats: XR24 AR24

framebuffer formats
    name    :  bpp     fields         bits        plane  type    endian    lib support
    XR30    :  [31:0]  x:R:G:B        2:10:10:10  . . .  fourcc  le        pixman cairo
    XB30    :  [31:0]  x:B:G:R        2:10:10:10  . . .  fourcc  le        pixman      
    RX30    :  [31:0]  R:G:B:x        10:10:10:2  . . .  fourcc  le                    
    BX30    :  [31:0]  B:G:R:x        10:10:10:2  . . .  fourcc  le                    
    AR30    :  [31:0]  A:R:G:B        2:10:10:10  . . .  fourcc  le        pixman      
    AB30    :  [31:0]  A:B:G:R        2:10:10:10  . . .  fourcc  le        pixman      
    RA30    :  [31:0]  R:G:B:A        10:10:10:2  . . .  fourcc  le                    
    BA30    :  [31:0]  B:G:R:A        10:10:10:2  . . .  fourcc  le                    
    XR24    :  [31:0]  x:R:G:B        8:8:8:8     P . .  fourcc  le        pixman cairo
    XB24    :  [31:0]  x:B:G:R        8:8:8:8     . . .  fourcc  le        pixman      
    RX24    :  [31:0]  R:G:B:x        8:8:8:8     . . .  fourcc  le        pixman      
    BX24    :  [31:0]  B:G:R:x        8:8:8:8     . . .  fourcc  le        pixman      
    AR24    :  [31:0]  A:R:G:B        8:8:8:8     P . .  fourcc  le        pixman      
    AB24    :  [31:0]  A:B:G:R        8:8:8:8     . . .  fourcc  le        pixman      
    RA24    :  [31:0]  R:G:B:A        8:8:8:8     . . .  fourcc  le        pixman      
    BA24    :  [31:0]  B:G:R:A        8:8:8:8     . . .  fourcc  le        pixman      
    RG24    :  [23:0]  R:G:B          8:8:8       . . .  fourcc  le        pixman      
    BG24    :  [23:0]  B:G:R          8:8:8       . . .  fourcc  le        pixman      
    RG16    :  [15:0]  R:G:B          5:6:5       . . .  fourcc  le        pixman cairo
    BG16    :  [15:0]  B:G:R          5:6:5       . . .  fourcc  le        pixman      
    XR15    :  [15:0]  x:R:G:B        1:5:5:5     . . .  fourcc  le        pixman      
    XB15    :  [15:0]  x:B:G:R        1:5:5:5     . . .  fourcc  le        pixman      
    RX15    :  [15:0]  R:G:B:x        5:5:5:1     . . .  fourcc  le                    
    BX15    :  [15:0]  B:G:R:x        5:5:5:1     . . .  fourcc  le                    
    AR15    :  [15:0]  A:R:G:B        1:5:5:5     . . .  fourcc  le        pixman      
    AB15    :  [15:0]  A:B:G:R        1:5:5:5     . . .  fourcc  le        pixman      
    RA15    :  [15:0]  R:G:B:A        5:5:5:1     . . .  fourcc  le                    
    BA15    :  [15:0]  B:G:R:A        5:5:5:1     . . .  fourcc  le                    
    XR12    :  [15:0]  x:R:G:B        4:4:4:4     . . .  fourcc  le        pixman      
    XB12    :  [15:0]  x:B:G:R        4:4:4:4     . . .  fourcc  le        pixman      
    RX12    :  [15:0]  R:G:B:x        4:4:4:4     . . .  fourcc  le                    
    BX12    :  [15:0]  B:G:R:x        4:4:4:4     . . .  fourcc  le                    
    AR12    :  [15:0]  A:R:G:B        4:4:4:4     . . .  fourcc  le        pixman      
    AB12    :  [15:0]  A:B:G:R        4:4:4:4     . . .  fourcc  le        pixman      
    RA12    :  [15:0]  R:G:B:A        4:4:4:4     . . .  fourcc  le                    
    BA12    :  [15:0]  B:G:R:A        4:4:4:4     . . .  fourcc  le                    
    RGB8    :  [ 7:0]  R:G:B          3:3:2       . . .  fourcc  le        pixman      
    BGR8    :  [ 7:0]  B:G:R          2:3:3       . . .  fourcc  le        pixman      
    YUYV    :  [31:0]  Cr0:Y1:Cb0:Y0  8:8:8:8     . . .  fourcc  le                    
    YVYU    :  [31:0]  Cb0:Y1:Cr0:Y0  8:8:8:8     . . .  fourcc  le                    
    UYVY    :  [31:0]  Y1:Cr0:Y0:Cb0  8:8:8:8     . . .  fourcc  le                    
    VYUY    :  [31:0]  Y1:Cb0:Y0:Cr0  8:8:8:8     . . .  fourcc  le                    
    AYUV    :  [31:0]  A:Y:Cb:Cr      8:8:8:8     . . .  fourcc  le                    
    24      :  [31:0]  x:R:G:B        8:8:8:8     . . .  legacy  cpu (le)  pixman cairo
    30      :  [31:0]  x:R:G:B        2:10:10:10  . . .  legacy  cpu (le)  pixman cairo
    15      :  [15:0]  x:R:G:B        1:5:5:5     . . .  legacy  cpu (le)  pixman      
    16      :  [15:0]  R:G:B          5:6:5       . . .  legacy  cpu (le)  pixman cairo
Comment 3 Tech-Tac 2025-12-25 20:26:28 UTC
The selected cursor size in this situation was 72 with Breeze Light theme