Hi, On Sat Apr 12, 2025 at 8:10 AM CEST, Johannes Schauer Marin Rodrigues wrote: > On Wed, 5 Mar 2025 10:07:15 +0100 Sjoerd Simons <[email protected]> wrote: >> On Tue, Mar 04, 2025 at 11:42:17AM +0100, Diederik de Haas wrote: >> > On Thu Feb 27, 2025 at 2:30 PM CET, Johannes Schauer Marin Rodrigues wrote: >> > > Source: mesa >> > > Version: 25.0.0-1 >> > > Severity: serious >> > > >> > > this is a regression from mesa 24.3.4-3. I'm filing with RC severity >> > > because >> > > this affects not only me but also other users on the BananaPI [1] and by >> > >> > I have a Pine64 PineTab2 (rk3566) which also has an Arm Mali-G52 GPU and >> > I was NOT able to reproduce the issue. I played the exact same MNT video >> > in Firefox, but also playing a (local) video in mpv didn't show any >> > issues. I'm using sway as wayland compositor. >> > >> > So I looked a bit further into the differences and noticed it's using an >> > Amlogic A311D SoC. That the bisected commit mentions "Some MTK display >> > controller drivers" indicates the problem could be in that direction. >> >> Given the bisected commit, this is not actually a bug in panfrost/mesa. This >> is >> likely a bug in the display controller not handling the relevant AFBC formats >> correctly. >> >> We're seeing the same on Mediatek devices at the moment. If you could dump >> the >> output of /sys/kernel/debug/dri/*/framebuffer while running into these issues >> that would be very helpful (as that will show the modifiers in use). > > I built a kernel without 32x8 AFBC disabled and am now back with a machine > where I observe the regular flicker effect. > > I attached the contents of /sys/kernel/debug/dri/ff900000.vpu/framebuffer to > this mail. > > I've also attached the output of `drm_info /dev/dri/card0`.
In case it could be useful, I started sway on my PineTab2 and collected the same info. I only started sway and then foot to run the commands. See attachments. Cheers, Diederik
Node: /dev/dri/card0
├───Driver: rockchip (RockChip Soc DRM) version 1.0.0 (0)
│ ├───DRM_CLIENT_CAP_STEREO_3D supported
│ ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
│ ├───DRM_CLIENT_CAP_ATOMIC supported
│ ├───DRM_CLIENT_CAP_ASPECT_RATIO supported
│ ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
│ ├───DRM_CAP_DUMB_BUFFER = 1
│ ├───DRM_CAP_VBLANK_HIGH_CRTC = 1
│ ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0
│ ├───DRM_CAP_DUMB_PREFER_SHADOW = 0
│ ├───DRM_CAP_PRIME = 3
│ ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1
│ ├───DRM_CAP_ASYNC_PAGE_FLIP = 0
│ ├───DRM_CAP_CURSOR_WIDTH = 64
│ ├───DRM_CAP_CURSOR_HEIGHT = 64
│ ├───DRM_CAP_ADDFB2_MODIFIERS = 1
│ ├───DRM_CAP_PAGE_FLIP_TARGET = 0
│ ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
│ ├───DRM_CAP_SYNCOBJ = 0
│ └───DRM_CAP_SYNCOBJ_TIMELINE = 0
├───Device: platform rockchip,display-subsystem
│ └───Available nodes: primary
├───Framebuffer size
│ ├───Width: [0, 4096]
│ └───Height: [0, 4096]
├───Connectors
│ ├───Connector 0
│ │ ├───Object ID: 53
│ │ ├───Type: HDMI-A
│ │ ├───Status: disconnected
│ │ ├───Encoders: {0}
│ │ └───Properties
│ │ ├───"EDID" (immutable): blob = 0
│ │ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ │ ├───"link-status": enum {Good, Bad} = Good
│ │ ├───"non-desktop" (immutable): range [0, 1] = 0
│ │ ├───"TILE" (immutable): blob = 0
│ │ ├───"CRTC_ID" (atomic): object CRTC = 0
│ │ ├───"max bpc": range [8, 16] = 0
│ │ └───"HDR_OUTPUT_METADATA": blob = 0
│ └───Connector 1
│ ├───Object ID: 56
│ ├───Type: DSI
│ ├───Status: connected
│ ├───Physical size: 135x216 mm
│ ├───Subpixel: unknown
│ ├───Encoders: {1}
│ ├───Modes
│ │ └───[email protected] preferred driver
│ └───Properties
│ ├───"EDID" (immutable): blob = 0
│ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ ├───"link-status": enum {Good, Bad} = Good
│ ├───"non-desktop" (immutable): range [0, 1] = 0
│ ├───"TILE" (immutable): blob = 0
│ ├───"CRTC_ID" (atomic): object CRTC = 51
│ └───"panel orientation" (immutable): enum {Normal, Upside Down,
Left Side Up, Right Side Up} = Right Side Up
├───Encoders
│ ├───Encoder 0
│ │ ├───Object ID: 52
│ │ ├───Type: TMDS
│ │ ├───CRTCS: {0}
│ │ └───Clones: {0}
│ └───Encoder 1
│ ├───Object ID: 55
│ ├───Type: DSI
│ ├───CRTCS: {1}
│ └───Clones: {1}
├───CRTCs
│ ├───CRTC 0
│ │ ├───Object ID: 50
│ │ ├───Legacy info
│ │ │ └───Gamma size: 0
│ │ └───Properties
│ │ ├───"ACTIVE" (atomic): range [0, 1] = 0
│ │ ├───"MODE_ID" (atomic): blob = 0
│ │ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ │ └───"VRR_ENABLED": range [0, 1] = 0
│ └───CRTC 1
│ ├───Object ID: 51
│ ├───Legacy info
│ │ ├───Mode: [email protected] preferred driver
│ │ └───Gamma size: 0
│ └───Properties
│ ├───"ACTIVE" (atomic): range [0, 1] = 1
│ ├───"MODE_ID" (atomic): blob = 62
│ │ └───[email protected] preferred driver
│ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
├───Plane 0
│ ├───Object ID: 32
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ └───BGR565 (0x36314742)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 33
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ └───BGR565 (0x36314742)
│ ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} =
Pre-multiplied
│ └───"zpos": range [0, 5] = 0
├───Plane 1
│ ├───Object ID: 38
│ ├───CRTCs: {1}
│ ├───Legacy info
│ │ ├───FB ID: 60
│ │ │ ├───Object ID: 60
│ │ │ ├───Size: 800x1280
│ │ │ ├───Format: XRGB8888 (0x34325258)
│ │ │ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ │ │ └───Planes:
│ │ │ └───Plane 0: offset = 0, pitch = 3200 bytes
│ │ └───Formats:
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV15 (0x3531564e)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───NV20 (0x3032564e)
│ │ ├───NV24 (0x3432564e)
│ │ ├───NV42 (0x3234564e)
│ │ ├───NV30 (0x3033564e)
│ │ ├───YVYU (0x55595659)
│ │ └───VYUY (0x59555956)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
│ ├───"FB_ID" (atomic): object framebuffer = 60
│ │ ├───Object ID: 60
│ │ ├───Size: 800x1280
│ │ ├───Format: XRGB8888 (0x34325258)
│ │ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ │ └───Planes:
│ │ └───Plane 0: offset = 0, pitch = 3200 bytes
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 51
│ ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
│ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 800
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 1280
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 800
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 1280
│ ├───"IN_FORMATS" (immutable): blob = 39
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV15 (0x3531564e)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───NV20 (0x3032564e)
│ │ ├───NV24 (0x3432564e)
│ │ ├───NV42 (0x3234564e)
│ │ ├───NV30 (0x3033564e)
│ │ ├───YVYU (0x55595659)
│ │ └───VYUY (0x59555956)
│ ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} =
Pre-multiplied
│ └───"zpos": range [0, 5] = 3
└───Plane 2
├───Object ID: 44
├───CRTCs: {0, 1}
├───Legacy info
│ ├───FB ID: 0
│ └───Formats:
│ ├───XRGB2101010 (0x30335258)
│ ├───XBGR2101010 (0x30334258)
│ ├───XRGB8888 (0x34325258)
│ ├───ARGB8888 (0x34325241)
│ ├───XBGR8888 (0x34324258)
│ ├───ABGR8888 (0x34324241)
│ ├───RGB888 (0x34324752)
│ ├───BGR888 (0x34324742)
│ ├───RGB565 (0x36314752)
│ ├───BGR565 (0x36314742)
│ ├───YUV420_8BIT (0x38305559)
│ ├───YUV420_10BIT (0x30315559)
│ ├───YUYV (0x56595559)
│ └───Y210 (0x30313259)
└───Properties
├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
├───"FB_ID" (atomic): object framebuffer = 0
├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
├───"CRTC_ID" (atomic): object CRTC = 0
├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_W" (atomic): range [0, INT32_MAX] = 0
├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
├───"IN_FORMATS" (immutable): blob = 45
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16) (0x800000000000001)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, SPARSE) (0x800000000000041)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, YTR) (0x800000000000011)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, CBR) (0x800000000000081)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, YTR, SPARSE)
(0x800000000000051)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, SPARSE, CBR)
(0x8000000000000c1)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, YTR, CBR) (0x800000000000091)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ ├───ARM_AFBC(BLOCK_SIZE = 16x16, YTR, SPARSE, CBR)
(0x8000000000000d1)
│ │ ├───XRGB2101010 (0x30335258)
│ │ ├───XBGR2101010 (0x30334258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───RGB888 (0x34324752)
│ │ ├───BGR888 (0x34324742)
│ │ ├───RGB565 (0x36314752)
│ │ ├───BGR565 (0x36314742)
│ │ ├───YUV420_8BIT (0x38305559)
│ │ ├───YUV420_10BIT (0x30315559)
│ │ ├───YUYV (0x56595559)
│ │ └───Y210 (0x30313259)
│ └───ARM_AFBC(BLOCK_SIZE = 16x16, YTR, SPLIT, SPARSE)
(0x800000000000071)
│ ├───XRGB2101010 (0x30335258)
│ ├───XBGR2101010 (0x30334258)
│ ├───XRGB8888 (0x34325258)
│ ├───ARGB8888 (0x34325241)
│ ├───XBGR8888 (0x34324258)
│ ├───ABGR8888 (0x34324241)
│ ├───RGB888 (0x34324752)
│ ├───BGR888 (0x34324742)
│ ├───RGB565 (0x36314752)
│ ├───BGR565 (0x36314742)
│ ├───YUV420_8BIT (0x38305559)
│ ├───YUV420_10BIT (0x30315559)
│ ├───YUYV (0x56595559)
│ └───Y210 (0x30313259)
├───"rotation": bitmask {rotate-0, rotate-90, rotate-270,
reflect-x, reflect-y} = (rotate-0)
├───"alpha": range [0, UINT16_MAX] = 65535
├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} =
Pre-multiplied
└───"zpos": range [0, 5] = 4
framebuffer[60]:
allocated by = sway
refcount=2
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=3
start=00000000
size=4132864
imported=no
framebuffer[59]:
allocated by = sway
refcount=2
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=3
start=00000000
size=4132864
imported=no
framebuffer[58]:
allocated by = [fbcon]
refcount=1
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=2
start=00000000
size=4096000
imported=no
framebuffer[60]:
allocated by = sway
refcount=2
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=3
start=00000000
size=4132864
imported=no
framebuffer[59]:
allocated by = sway
refcount=2
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=3
start=00000000
size=4132864
imported=no
framebuffer[58]:
allocated by = [fbcon]
refcount=1
format=XR24 little-endian (0x34325258)
modifier=0x0
size=800x1280
layers:
size[0]=800x1280
pitch[0]=3200
offset[0]=0
obj[0]:
name=0
refcount=2
start=00000000
size=4096000
imported=no
signature.asc
Description: PGP signature

