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 <sjo...@collabora.com> 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 │ │ └───800x1280@59.98 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: 800x1280@59.98 preferred driver │ │ └───Gamma size: 0 │ └───Properties │ ├───"ACTIVE" (atomic): range [0, 1] = 1 │ ├───"MODE_ID" (atomic): blob = 62 │ │ └───800x1280@59.98 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