Hi Sjoerd,

sorry for having failed to follow up on this. I didn't check whether this bug
report had new messages. Diederik has kindly pinged me that your message still
needs a response. Thank you, Diederik!

I've put Lukas F. Hartmann as the CEO of MNT Research in CC.

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`.

> It would also be helpful if you could mention the display stack you're using
> (e.g. which compositor). At least in my testing gnome wasn't impacted as that
> didn't seem to be using modifiers. If you're using weston you could try with
> WESTON_DISABLE_GBM_MODIFIERS=1 set in the environment to avoid modifier
> usage.

I'm running sway (as shown in the framebuffer attachment).

Thanks!

cheers, josch
framebuffer[47]:
        allocated by = sway
        refcount=2
        format=XR24 little-endian (0x34325258)
        modifier=0x800000000000062
        size=1920x1080
        layers:
                size[0]=1920x1080
                pitch[0]=7680
                offset[0]=0
                obj[0]:
                        name=0
                        refcount=4
                        start=00101012
                        size=8556544
                        imported=no
                        dma_addr=0x00000000e6a00000
                        vaddr=0000000041973c69
framebuffer[44]:
        allocated by = sway
        refcount=2
        format=XR24 little-endian (0x34325258)
        modifier=0x800000000000062
        size=1920x1080
        layers:
                size[0]=1920x1080
                pitch[0]=7680
                offset[0]=0
                obj[0]:
                        name=0
                        refcount=4
                        start=001007e9
                        size=8556544
                        imported=no
                        dma_addr=0x00000000e6100000
                        vaddr=00000000078005da
framebuffer[45]:
        allocated by = [fbcon]
        refcount=1
        format=XR24 little-endian (0x34325258)
        modifier=0x0
        size=1920x1080
        layers:
                size[0]=1920x1080
                pitch[0]=7680
                offset[0]=0
                obj[0]:
                        name=0
                        refcount=2
                        start=00100000
                        size=8294400
                        imported=no
                        dma_addr=0x00000000e5300000
                        vaddr=000000003c5919af
Node: /dev/dri/card0
├───Driver: meson (Amlogic Meson DRM driver) 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 amlogic,meson-g12a-vpu
│   └───Available nodes: primary
├───Framebuffer size
│   ├───Width: [0, 3840]
│   └───Height: [0, 2160]
├───Connectors
│   ├───Connector 0
│   │   ├───Object ID: 33
│   │   ├───Type: HDMI-A
│   │   ├───Status: connected
│   │   ├───Physical size: 160x90 mm
│   │   ├───Subpixel: unknown
│   │   ├───Encoders: {0}
│   │   ├───Modes
│   │   │   ├───1920x1080@60.00 preferred driver phsync pvsync 
│   │   │   ├───1920x1080@60.00 driver phsync pvsync 16:9 
│   │   │   ├───1920x1080@60.00 driver phsync pvsync interlace 
│   │   │   ├───1920x1080@60.00 driver phsync pvsync interlace 16:9 
│   │   │   ├───1920x1080@50.00 driver phsync pvsync 16:9 
│   │   │   ├───1920x1080@50.00 driver phsync pvsync interlace 
│   │   │   ├───1920x1080@50.00 driver phsync pvsync interlace 16:9 
│   │   │   ├───1920x1080@30.00 driver phsync pvsync 16:9 
│   │   │   ├───1920x1080@25.00 driver phsync pvsync 16:9 
│   │   │   ├───1920x1080@24.00 driver phsync pvsync 16:9 
│   │   │   ├───1680x1050@59.88 driver phsync nvsync 
│   │   │   ├───1280x1024@75.03 driver phsync pvsync 
│   │   │   ├───1280x1024@60.02 driver phsync pvsync 
│   │   │   ├───1440x900@74.98 driver nhsync pvsync 
│   │   │   ├───1440x900@59.90 driver phsync nvsync 
│   │   │   ├───1280x960@60.00 driver phsync pvsync 
│   │   │   ├───1360x768@60.02 driver phsync pvsync 
│   │   │   ├───1280x800@59.91 driver phsync nvsync 
│   │   │   ├───1152x864@75.00 driver phsync pvsync 
│   │   │   ├───1280x720@60.00 driver phsync pvsync 
│   │   │   ├───1280x720@60.00 driver phsync pvsync 16:9 
│   │   │   ├───1280x720@50.00 driver phsync pvsync 
│   │   │   ├───1280x720@50.00 driver phsync pvsync 16:9 
│   │   │   ├───1024x768@75.03 driver phsync pvsync 
│   │   │   ├───1024x768@70.07 driver nhsync nvsync 
│   │   │   ├───1024x768@60.00 driver nhsync nvsync 
│   │   │   ├───832x624@74.55 driver nhsync nvsync 
│   │   │   ├───800x600@75.00 driver phsync pvsync 
│   │   │   ├───800x600@72.19 driver phsync pvsync 
│   │   │   ├───800x600@60.32 driver phsync pvsync 
│   │   │   ├───720x576@50.00 driver nhsync nvsync 16:9 
│   │   │   ├───720x480@59.94 driver nhsync nvsync 16:9 
│   │   │   ├───640x480@75.00 driver nhsync nvsync 
│   │   │   ├───640x480@72.81 driver nhsync nvsync 
│   │   │   └───640x480@66.67 driver nhsync nvsync 
│   │   └───Properties
│   │       ├───"EDID" (immutable): blob = 49
│   │       ├───"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 = 43
│   │       ├───"HDR_OUTPUT_METADATA": blob = 0
│   │       └───"max bpc": range [8, 8] = 8
│   └───Connector 1
│       ├───Object ID: 36
│       ├───Type: eDP
│       ├───Status: connected
│       ├───Physical size: 276x155 mm
│       ├───Subpixel: unknown
│       ├───Encoders: {1}
│       ├───Modes
│       │   └───1920x1080@67.45 preferred driver 
│       └───Properties
│           ├───"EDID" (immutable): blob = 0
│           ├───"DPMS": enum {On, Standby, Suspend, Off} = Off
│           ├───"link-status": enum {Good, Bad} = Good
│           ├───"non-desktop" (immutable): range [0, 1] = 0
│           ├───"TILE" (immutable): blob = 0
│           └───"CRTC_ID" (atomic): object CRTC = 0
├───Encoders
│   ├───Encoder 0
│   │   ├───Object ID: 32
│   │   ├───Type: TMDS
│   │   ├───CRTCS: {0}
│   │   └───Clones: {0}
│   └───Encoder 1
│       ├───Object ID: 35
│       ├───Type: DSI
│       ├───CRTCS: {0}
│       └───Clones: {1}
├───CRTCs
│   └───CRTC 0
│       ├───Object ID: 43
│       ├───Legacy info
│       │   ├───Mode: 1920x1080@60.00 preferred driver phsync pvsync 
│       │   └───Gamma size: 0
│       └───Properties
│           ├───"ACTIVE" (atomic): range [0, 1] = 1
│           ├───"MODE_ID" (atomic): blob = 46
│           │   └───1920x1080@60.00 preferred driver phsync pvsync 
│           ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│           └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
    ├───Plane 0
    │   ├───Object ID: 37
    │   ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7}
    │   ├───Legacy info
    │   │   ├───FB ID: 44
    │   │   │   ├───Object ID: 44
    │   │   │   ├───Size: 1920x1080
    │   │   │   ├───Format: XRGB8888 (0x34325258)
    │   │   │   ├───Modifier: ARM_AFBC(BLOCK_SIZE = 32x8, SPLIT, SPARSE) 
(0x800000000000062)
    │   │   │   └───Planes:
    │   │   │       └───Plane 0: offset = 0, pitch = 7680 bytes
    │   │   └───Formats:
    │   │       ├───ARGB8888 (0x34325241)
    │   │       ├───ABGR8888 (0x34324241)
    │   │       ├───XRGB8888 (0x34325258)
    │   │       ├───XBGR8888 (0x34324258)
    │   │       ├───RGB888 (0x34324752)
    │   │       └───RGB565 (0x36314752)
    │   └───Properties
    │       ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
    │       ├───"FB_ID" (atomic): object framebuffer = 44
    │       │   ├───Object ID: 44
    │       │   ├───Size: 1920x1080
    │       │   ├───Format: XRGB8888 (0x34325258)
    │       │   ├───Modifier: ARM_AFBC(BLOCK_SIZE = 32x8, SPLIT, SPARSE) 
(0x800000000000062)
    │       │   └───Planes:
    │       │       └───Plane 0: offset = 0, pitch = 7680 bytes
    │       ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
    │       ├───"CRTC_ID" (atomic): object CRTC = 43
    │       ├───"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] = 1920
    │       ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 1080
    │       ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
    │       ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
    │       ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 1920
    │       ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 1080
    │       ├───"IN_FORMATS" (immutable): blob = 38
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 16x16, SPLIT, SPARSE) 
(0x800000000000061)
    │       │   │   ├───ARGB8888 (0x34325241)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   ├───XRGB8888 (0x34325258)
    │       │   │   ├───XBGR8888 (0x34324258)
    │       │   │   ├───RGB888 (0x34324752)
    │       │   │   └───RGB565 (0x36314752)
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 16x16, YTR, SPLIT, SPARSE) 
(0x800000000000071)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   └───XBGR8888 (0x34324258)
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 32x8, SPARSE) (0x800000000000042)
    │       │   │   ├───ARGB8888 (0x34325241)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   ├───XRGB8888 (0x34325258)
    │       │   │   ├───XBGR8888 (0x34324258)
    │       │   │   ├───RGB888 (0x34324752)
    │       │   │   └───RGB565 (0x36314752)
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 32x8, YTR, SPARSE) (0x800000000000052)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   └───XBGR8888 (0x34324258)
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 32x8, SPLIT, SPARSE) 
(0x800000000000062)
    │       │   │   ├───ARGB8888 (0x34325241)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   ├───XRGB8888 (0x34325258)
    │       │   │   ├───XBGR8888 (0x34324258)
    │       │   │   ├───RGB888 (0x34324752)
    │       │   │   └───RGB565 (0x36314752)
    │       │   ├───ARM_AFBC(BLOCK_SIZE = 32x8, YTR, SPLIT, SPARSE) 
(0x800000000000072)
    │       │   │   ├───ABGR8888 (0x34324241)
    │       │   │   └───XBGR8888 (0x34324258)
    │       │   └───DRM_FORMAT_MOD_LINEAR (0x0)
    │       │       ├───ARGB8888 (0x34325241)
    │       │       ├───ABGR8888 (0x34324241)
    │       │       ├───XRGB8888 (0x34325258)
    │       │       ├───XBGR8888 (0x34324258)
    │       │       ├───RGB888 (0x34324752)
    │       │       └───RGB565 (0x36314752)
    │       └───"zpos" (immutable): range [1, 1] = 1
    └───Plane 1
        ├───Object ID: 40
        ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7}
        ├───Legacy info
        │   ├───FB ID: 0
        │   └───Formats:
        │       ├───YUYV (0x56595559)
        │       ├───NV12 (0x3231564e)
        │       ├───NV21 (0x3132564e)
        │       ├───YUV444 (0x34325559)
        │       ├───YUV422 (0x36315559)
        │       ├───YUV420 (0x32315559)
        │       ├───YUV411 (0x31315559)
        │       ├───YUV410 (0x39565559)
        │       ├───YUV420_8BIT (0x38305559)
        │       └───YUV420_10BIT (0x30315559)
        └───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 = 41
            │   ├───AMLOGIC_FBC(layout = SCATTER, options = MEM_SAVING) 
(0xa00000000000102)
            │   │   ├───YUV420_8BIT (0x38305559)
            │   │   └───YUV420_10BIT (0x30315559)
            │   ├───AMLOGIC_FBC(layout = BASIC, options = MEM_SAVING) 
(0xa00000000000101)
            │   │   ├───YUV420_8BIT (0x38305559)
            │   │   └───YUV420_10BIT (0x30315559)
            │   ├───AMLOGIC_FBC(layout = SCATTER, options = 0) 
(0xa00000000000002)
            │   │   ├───YUV420_8BIT (0x38305559)
            │   │   └───YUV420_10BIT (0x30315559)
            │   ├───AMLOGIC_FBC(layout = BASIC, options = 0) (0xa00000000000001)
            │   │   ├───YUV420_8BIT (0x38305559)
            │   │   └───YUV420_10BIT (0x30315559)
            │   └───DRM_FORMAT_MOD_LINEAR (0x0)
            │       ├───YUYV (0x56595559)
            │       ├───NV12 (0x3231564e)
            │       ├───NV21 (0x3132564e)
            │       ├───YUV444 (0x34325559)
            │       ├───YUV422 (0x36315559)
            │       ├───YUV420 (0x32315559)
            │       ├───YUV411 (0x31315559)
            │       └───YUV410 (0x39565559)
            └───"zpos" (immutable): range [0, 0] = 0

Attachment: signature.asc
Description: signature

Reply via email to