Posts by chewitt

    If you want a dedicated vendor kernel image with all features working .. LE 9.0.2

    If you want to experiment with upstream kernels which are less featured but generally usable as long as your media needs and expectations are not exotic, use the AMLGX image. You can manually migrate data like Kodi DB files between installs, but you cannot update in-place between LE 9.0.2 and LE 12 (or LE13 nightlies) as the boot files, kernel, kodi (everything basically) are different.

    Read https://wiki.libreelec.tv/hardware/amlogic for more info and instructions.

    EDIT: Current images in my test share have the previous patch reverted and something added that forces EGL_DEPTH_SIZE to zero (EGL_STENCIL_SIZE is already zero). As always, no guarantees my guesswork is correct. Please run tests again.

    When i set 23.98 on my Windows PC it show 23Hz

    The firmware in the projector has some rounding logic for display then, and when Kodi sends 23.976 it's showing you 24Hz. The Windows PC may not be using 100% the same modeline as Linux (different code, different calculations) and this could explain why one OS results in the firmware rounding down to 23 and the other results in rounding up to 24. I was going to make a comment on this being possible in the previous post, but chose to wait and let you explain first.

    The real-world test is: do you see periodic sync glitches during playback, or is playback smooth?. If you don't (and I suspect you don't with well prepared media) there's no issue.

    I can see from the Kodi crashlog that my patch changes the issue and we're not generating the nouveau error. I've pushed updated images which revert that to restore the original crash. NB: I'm only interested in the "pastekodi" output as this contains both Kodi and system log in one paste.

    Code
    echo 'module nouveau +p' > /sys/kernel/debug/dynamic_debug/control
    dmesg -n 8
    systemctl restart kodi

    On the GBM image can you do that ^ .. it should put nouveau into debug mode and that might generate some log info on interaction with mesa and upper layers of the graphics stack.

    NB: There's no need to unpack .tar files, just put them in /storage/.update and reboot. Nothing in /storage will be touched by an update unless a Kodi version bump happens (and then only minor changes to /storage/.kodi).

    The GBM log doesn't contain as much debug output from nouveau, but that could be due to kodi.conf not being present? Otherwise it looks no different, which was largely expected.

    Have you tried the Geforce 9400GT card recently? - I rather suspect Kodi logic for outscan format is to blame, but I'm also wondering if age of hardware (and thus features exposed to nouveau) are related. It would be interesting to see if the 'modetest' output from the Geforce 9400GT card is any different from 6100.

    Code
    2025-01-24 08:35:39.301 T:986      info <general>: Opening stream: 0 source: 256
    2025-01-24 08:35:39.301 T:986      info <general>: [WHITELIST] Searching the whitelist for: width: 3840, height: 2160, fps: 23.976, 3D: false
    2025-01-24 08:35:39.301 T:986     debug <general>: [WHITELIST] Searching for an exact resolution with an exact refresh rate
    2025-01-24 08:35:39.301 T:986     debug <general>: [WHITELIST] Matched an exact resolution with an exact refresh rate 3840x2160 @ 23.976025 Hz (32)
    2025-01-24 08:35:39.301 T:986      info <general>: Display resolution ADJUST : 3840x2160 @ 23.976025 Hz (32) (weight: 0.000)

    This ^ shows Kodi correctly detecting and selecting the [email protected] mode.

    Code
    2025-01-24 08:35:39.659 T:899     debug <general>: CDRMUtils::SetMode - found crtc mode: 3840x2160 @ 24 Hz

    This ^ means some code is rounding the value to 24Hz. I'm not sure if it's Kodi or the underlying kernel DRM layer, but I see the same on an LG TV and I have no playback issues, so this can be ignored.

    I can see from the log that you didn't whitelist any 1080p modes. That's probably a bad idea, but not related to this issue. Have a read of the wiki acticle here for recommendations: https://wiki.libreelec.tv/configuration/4k-hdr

    If seeing bad values in the log wasn't the issue? - how do you determine the projector is at 24Hz?

    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.