[x86-64] H264 HW Accelerated Results in Green Screen

  • Hello all!

    I've migrated from J1900 itx board to n100 itx board. Installed generic LE12 image, the GUI experience is more fluid than before, however....

    ...the thing that didn't work for me before doesn't work even now: When VAAPI is enabled, I can't watch H264 videos, I get all green screen with some green block movement. H265 works. Disabling VAAPI only for mp4 doesn't help at all, I have to disable VAAPI altogether. And oh, Netflix plugin is still pumping colors.

    Imagine my surprise when I put legacy image and rebooted, that HW acceleration just works; H264, H265, and Netflix doesn't pump colors.

    My board is Asus PRIME N100I-D D4-CSM. I've added 8 GB of RAM and 256 GB NVME for booting; and with Legacy image it just works.

  • That board was released last year, so still pretty new. Post a log from Generic please...

    Please provide a full debug log.

    How to post a log (wiki)

    1. Enable debugging in Settings>System Settings>Logging
    2. Restart Kodi
    3. Replicate the problem
    4. Generate a log URL (do not post/upload logs to the forum)

    use "Settings > LibreELEC > System > Paste system logs" or run "pastekodi" over SSH, then post the URL link
  • PS: Maybe it's that bug:

    chewitt
    July 21, 2024 at 1:24 PM
  • OK, so I loaded LibreELEC-Generic.x86_64-12.0.0.img.gz and played two videos, one is H264, "A dog's life" and got green flickering screen, audio is OK. Afterwards I played "Aunty Donna's Big Ol' House of Fun" on Netflix and got color pumping, audio is OK. I've been playing before with the new option, Prime Render Method, on old installation, all possible combinations, and it didn't reduce Netflix flickering. I didn't do it now.

    I've recorded a 10 seconds video of that green screen on my mobile phone, I can upload it somewhere if needed, also of the pumping, but I don't know if it will be visible as there is framerate difference... (edit, it's not visible)

    Log, as requested, is here:

    https://paste.libreelec.tv/valued-cougar.log

    I will try Nightly, to see if there is some difference.


    These are results with nightly: LibreELEC-Generic.x86_64-12.0-nightly-20240801-cbf0545.img.gz

    https://paste.libreelec.tv/accurate-ferret.log

    In short, nothing changed.

    Edited 3 times, last by itisljar: Merged a post created by itisljar into this post. (August 10, 2024 at 1:22 PM).

  • Nothing in the logs (as expected). Since Intel drivers are involved (and them having such a wonderful reputation) take a backup and bump to the latest LE13 nightly which is now running Linux 6.10 (so newer Intel drivers). I'm grabbing at straws a little, but there's logic to the request.

  • LibreELEC-Generic.x86_64-13.0-nightly-20240809-357e83f.img.gz

    The green flickering is more intense, but now it has small purple squares on it random all over the screen. Netflix is funny - it starts from greyish screen, grey fades away in a second or two and picture becomes normal, but colors are still pumping.

    https://paste.libreelec.tv/willing-labrador.log

    Intel drivers work fine in legacy image; are these same drivers used in generic image? If so, there must be something shoddy in communication between window managers and drivers, or am I wrong there, as legacy uses X11, and generic uses GBM (I think)?

    Edited once, last by itisljar (August 10, 2024 at 3:04 PM).

  • Just to add, I've just tried AV1 file to see does it decode as it should, I've used Sparks-5994fps-AV1-10bit-1920x1080-2194kbps.mp4, it's free Netflix test file. When using in generic image, where I had to disable VAAPI decoding, it was using between 50 and 60 % CPU usage, as seen on htop, with CPU Average. Now, with legacy image, it hovers on 4% CPU usage, so clearly it uses GPU decoding for AV1, and that's why I bought that board with that CPU :)

  • ...as legacy uses X11, and generic uses GBM (I think)?

    That's right.

    Here are the Netflix errors. I think DRM initialization went wrong, resulting in decryption errors.

    Generic LE uses DRM, Generic-Legacy LE uses X11. I guess there is an issue with your hardware-specific DRM driver.

  • Errors in log files do not always mean something bad. LE/Kodi does not support HDCP so the DRM display pipeline does not support SecurePath, so that fails and widevine will not be able to show 4K content. However, widevine will then fall-back to a non-secure path with limitations (1080p max) and show something (which it does). TL/DR: Ignore the misdirection.

  • That's OK, I have 720p TV, and am forcing 1080p resolution on it because of Netflix; when I had KODI at native resolution, subtitles on netflix were in three lines, but the third line was one line separated, or at the top of a screen, making watching almost impossible.

    Maybe it was a bug, maybe it was fixed, but it just stayed that way because I didn't have any troubles at all.

  • I'm not sure that works for Netflix. When I had that problem, I tried everything, I think I was on LE10 then.

    Anyways, as it is now, it works. I predict failure of this TV set soon, as it has 13 years now :)