Posts by chewitt

    In GBM images we can find the plane details, e.g. this is from an Amlogic S905 board:

    Code
    2025-01-20 19:16:58.075 T:734      info <general>: CDRMUtils::FindConnector - using connector: HDMI-A-1
    2025-01-20 19:16:58.075 T:734      info <general>: CDRMUtils::FindEncoder - using encoder: 34
    2025-01-20 19:16:58.075 T:734     debug <general>: CDRMUtils::FindCrtc - original crtc mode: 3840x2160 @ 60 Hz
    2025-01-20 19:16:58.075 T:734      info <general>: CDRMUtils::FindPlanes - using crtc: 43
    2025-01-20 19:16:58.075 T:734     debug <general>: CDRMUtils::FindPlanes - using video plane 40
    2025-01-20 19:16:58.075 T:734     debug <general>: CDRMUtils::FindPlanes - using gui plane 37
    2025-01-20 19:16:58.076 T:734     debug <general>: CDRMAtomic::InitDrm - initialized atomic DRM

    The GUI is using plane 37 so we can check the plane capabilities using modetest output:

    Here you can see that the plane supports LINEAR formats.

    From the 'Nouveau' GBM kodi.log:

    Code
    2025-01-23 16:04:45.957 T:917      info <general>: CDRMUtils::FindConnector - using connector: DVI-D-1
    2025-01-23 16:04:45.957 T:917      info <general>: CDRMUtils::FindEncoder - using encoder: 45
    2025-01-23 16:04:45.957 T:917     debug <general>: CDRMUtils::FindCrtc - original crtc mode: 1920x1080 @ 60 Hz
    2025-01-23 16:04:45.957 T:917      info <general>: CDRMUtils::FindPlanes - using crtc: 39
    2025-01-23 16:04:45.957 T:917     debug <general>: CDRMUtils::FindPlanes - using gui plane 38
    2025-01-23 16:04:45.957 T:917     debug <general>: CDRMLegacy::InitDrm - initialized legacy DRM

    Plane 38 has the following capabilities:

    Code
    Planes:
    id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
    38	39	61	0,0		0,0	0       	0x00000001
      formats: XR24 RG16 XR15
      props:
    	8 type:
    		flags: immutable enum
    		enums: Overlay=0 Primary=1 Cursor=2
    		value: 1

    Folks on IRC said "Seems like the GPU doesn't like the pushbuf due to an invalid render target format. I would guess the framebuffer isn't properly set at the time of the flush and the userspace driver just flushes the current (invalid) state, which has the GPU grumpy." and also "you can't use a linear frontbuffer with depth" .. not clear to me if that refers to zpos or alpha-channel.

    I've opened https://github.com/xbmc/xbmc/issues/26345 to discuss with Kodi devs.

    In the background I also created this:

    This is partly inspired by a patch previously used with Odroid XU4 boards that don't support YUV formats and needed some extra help to use XRGB8888 output, but I'm honestly guessing in the wind. I'm not sure there's a real issue with selecting planes (as we select a plane) but I'm interested to see if anything changes - so please update to the latest images pushed to my test share and do the usual log sharing again.

    Xorg now looks generally happy (some xorg.conf tweaking can clean some minor things up) but it now clearly shows an identical fault to the GBM image, so the IRC comments about "using linear scanout with depth" apply and we need to tweak something on the Kodi side to resolve this.

    Code
    RPi5:~ # ls -l /flash/overlays/*pwm*
    -rwxr-xr-x    1 root     root          1825 Jan 17 14:26 /flash/overlays/i2c-pwm-pca9685a.dtbo
    -rwxr-xr-x    1 root     root          1059 Jan 17 14:26 /flash/overlays/pwm-2chan.dtbo
    -rwxr-xr-x    1 root     root          3558 Jan 17 14:26 /flash/overlays/pwm-gpio-fan.dtbo
    -rwxr-xr-x    1 root     root          1006 Jan 17 14:26 /flash/overlays/pwm-gpio.dtbo
    -rwxr-xr-x    1 root     root          1035 Jan 17 14:26 /flash/overlays/pwm-ir-tx.dtbo
    -rwxr-xr-x    1 root     root          1010 Jan 17 14:26 /flash/overlays/pwm-pio.dtbo
    -rwxr-xr-x    1 root     root           948 Jan 17 14:26 /flash/overlays/pwm.dtbo
    -rwxr-xr-x    1 root     root          1493 Jan 17 14:26 /flash/overlays/pwm1.dtbo

    From a current LE13 nightly with RPi Linux 6.12.y kernel ^ - I don't have an LE12 device but we bumped the kernel for the 12.0.2 release (shipped last night) so if RPi devs backported the change to their Linux 6.6.y kernel it should be included there too.

    Some things to experiment with:

    a) Remove the SD card and see if the RPi firmware screen shows?

    b) Use a different mini-HDMI to HDMI cable; do not use adapter + cables

    c) Use a different HDMI port on the TV

    d) Use video=HDMI-A-1:1920x1080M@60 not video=HDMI-A-1:1920x1080@60D

    e) Update the firmware on the board using RPi imager

    f) Use LE 12.0.2 which was released last night, or an LE 13 nightly

    From experience I'd point fingers at cables or ports being the issue.

    Code
    info <general>: CDRMUtils::FindConnector - using connector: HDMI-A-2

    ^ this shows you are using the HDMI connector furthest from the power connector. Move HDMI to the port nearest the power port and CEC will work again. Support for CEC on both connectors has been intentionally removed due to problems seen when multiple HDMI connections are active. It is now only supported on HDMI-A-1.

    mglae See the IRC chat that starts here: https://oftc.irclog.whitequark.org/dri-devel/2025-01-23#33941062

    This change causes the dri2 error under X11: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29969 - so I've added support for legacy-x11=dri2 in mesa package.mk

    Johpin I've pushed an updated pair of images to https://chewitt.libreelec.tv/testing/ and I have a hunch "Nouveau-Legacy" with DRI2 support should now work? - If it does, please test whether this /storage/.config/xorg.conf also works? (probably not)

    Code
    Section "Device"
        Identifier "Nouveau"
        Driver "nouveau"
        Option "DRI" "3"
    EndSection

    The main mission is still to get GBM working so nouveau can be added to the normal Generic image. I'll need to chat with Kodi devs about that though, I'm not really understanding the DRM format comments in the IRC chat.

    I don't see any difference in the log, which is positive as we can eliminate Kodi changes from suspicion and focus on interaction between libgallium and the kernel driver. I think it's time to push discussion to the mesa mailing list.

    NB: Rolling back the mesa version back that far will require more than a simple version/sha256 change in package.mk as the build options have changed format and things have been added/removed over time (look at the git history for mesa package.mk). I did look at reverting, but in the end we need to fix the current version so better to pursue that for now.

    Our general policy is not to touch the content of release branches outside of the Kodi version (usually the focus of the bump) unless there are known bugs or security issues solved. LE13 nightlies are stable if you really need the newer version.