[TESTING][S905(X)] 10bit/HDR/Dithering Test Builds & Discussion

  • This thread is specifically targeting 10bit output, HDR, and 10-8bit dithering support (fixes the "color banding" issue posted around on nougat krypton builds). This testing started in kszaq 's "full Nougat" kernel preview thread, however developing on top of a kernel with unknown preexisting issues was getting difficult. This work was then rebased on top of kszaq's existing nougat-experiment, but has since moved back to the nougat-wip branch ("full nougat" kernel).

    These builds are only possible because of kszaq.

    A summary of what was discovered in the "full nougat" thread:

    • Output issues may be related to hdmi cable quality, or these devices really aren't made equal. If you have issues, I first recommend trying a higher quality 2.0a cable. If you go through an AVR, also try replacing the cable from your AVR to your TV. We're making progress, so this issue won't be around forever. However, these issues have yet to be fixed, so if you had output issues in the previous 8.0.1x nougat releases, you'll have issues here too.
    • We must set display mode to properly pass colorspace changes. As such, kodi is now patched to reset matching display modes: for instance if GUI is at 2160@50, and a bt2020 video is 2160@25, the display will still reset 2160@50 so colorspace is passed.

    Issues fixed + changes from earlier krypton nougat 8.0.1x releases (full changelogs posted on download link):

    • Colorspace is passed
    • Color banding at the default 8 bit output is fixed (dithering enabled).
    • Small stuff with 10 bit output fixed (e.g. setting color depth early enough for the 10-8 dithering and rounding checks after LE resolution switching).
    • Fixed some 4k output issues some users had with the nougat kernel (improved compatibility).
    • Based on kszaq's "full nougat" test kernel.


    Known issues:

    • Needs more testing

    10bit output on capable hardware:

    • On a new boot before any other playback has been performed, run the following: echo '444,10bit' > /sys/class/amhdmitx/amhdmitx0/attr
    • This only needs to be set once each boot, so it can be put in /storage/.config/autostart.sh
    • This shouldn't affect any 8 bit output either and can be set unconditionally (as above).
    • Testing has been very limited thus far.

    Force RGB:
    If you have an older display and needed output_rgb, please use the following instead of the old interface:

    echo 'rgb,8bit' > /sys/class/amhdmitx/amhdmitx0/attr

    Device Trees (must be updated due to "full nougat" kernel)

    ^Missing from above: gxl_p230_KI_Pro.dtb provided by @afl1

    Download

    Kernel Source

    LibreELEC Source

    Edited 32 times, last by johngalt (June 8, 2017 at 8:00 PM).

  • My first (HD only) test results are promising. :)

    - IR is working well. ;)
    - 10bit output is working well at 1080p. AVR confirms 30bit.

    - The H.264 videos that looked like slow-motion before played perfectly fine with 10bit output.

    - Audio seems in sync at 23.976fps (with my usual 175ms adjustment).

    - The "lower grayscale flicker" from MM Krypton seems to be gone in this build as well.

    - I did not see any skipped frames, but I will do some high bitrate testing lateron to be sure.

  • Uploaded a new build in OP. Changes:

    • Removed "output_rgb" interface completely since it's redundant (see OP).
    • h264 dolby vision support (nougat backport)
    • Fixed too high of contrast (nougat backport)
    • New white balance module (nougat backport)
    • A few HDR fixes (nougat backports)
    • Added section in OP on dolby vision.

    Edited 4 times, last by johngalt (June 4, 2017 at 8:01 AM).

  • I don't think S905X supports Dolby Vision. In the kernel source you will see this:

    Code
    if (is_meson_gxm_cpu() && is_dolby_vision_on())

    S905X/905D is GXL and S912 is GXM.

  • Uploaded a new build in OP. Changes:

    • Removed "output_rgb" interface completely since it's redundant (see OP).
    • h264 dolby vision support (nougat backport)
    • Fixed too high of contrast (nougat backport)
    • New white balance module (nougat backport)
    • A few HDR fixes (nougat backports)
    • Added section in OP on dolby vision.

    Is this built with KERNEL_VERSION="6b34aaf" or KERNEL_VERSION="65c65db"? The changelog implies the latter, but your LE repo says the former.

  • I don't think S905X supports Dolby Vision. In the kernel source you will see this:

    Code
    if (is_meson_gxm_cpu() && is_dolby_vision_on())

    S905X/905D is GXL and S912 is GXM.

    You're right, it is stuck at 5 (SDR8 output) on anything other than GXM. I got HDR10 with a test file but didn't see it had HDR10 metadata. Thank you, my mistake.

    koenkooi It's built with the latter. I forgot to push the LE kernel bump.

  • I've been testing johngalt 's Franken Kernel using a S912's MINIX U9 running an experimental LE 9.x - Kodi v18 Leia (Agile) with a HiSense 4K TV.

    I believe this TV has a 10bit panel (8bits + FRC) - its not a HDR TV.

    Android Kodi Krypton & SPMC v16.7.0 using Media Codec Surface with numerous 2160p HDR10 test clips....

    Results = Washed out colors and a dull lifeless picture

    LE 9.x Kodi v18 Leia with John's Franken Kernel with the same HDR Clips, using:

    Code
    echo '444,10bit' > /sys/class/amhdmitx/amhdmitx0/attr

    Results = everything Pops. Far Better color saturation and to my eyes a lot better grey color shading.

    I would go so far as to say its the best 4K picture output I've seen on this TV since I owned it.

    Thanks for the time and effort you have put into this Kernel John !

  • You're right, it is stuck at 5 (SDR8 output) on anything other than GXM. I got HDR10 with a test file but didn't see it had HDR10 metadata. Thank you, my mistake.

    koenkooi It's built with the latter. I forgot to push the LE kernel bump.

    Good, then I've built and tested the same kernel :) 'echo 444,10bit' still gives me various issues, including a new 'resolution error' on the AVR. But like jd17 I'm going to wait for new HMDI cables to arrive before drawing any conclusions. So no real testing till tuesday evening, sorry.

    I did notice that 'echo 422,10bit' falls back to 422,8bit on Passengers and the Smurfs according to my AVR.

  • Uploaded a new build in OP.

    I started testing the high bitrate Rogue One Blu-ray remux (39mbit/s average video + audio) with the new build this morning (10bit output).

    Unfortunately, out of the 11 frame skips within 10 minutes of playing, at least 6 were "unprovoked", i.e. not triggered by me opening the overlay.

    dmesg:
    gLYN

    kodi.log:

    fAZR

    Those frame skips were fixed in the original 8.0.1l (last Nougat Frankenstein from kszaq).
    You based these builds on that, correct?
    Does that mean the skips are triggered by the 10bit output?

    Bug report thread for reference:
    [RESOLVED] S905X Krypton: Frame skips on high bitrate videos

  • I tested again to make sure, this time with the 10bit command in autostart.sh.

    Result: 9 unprovoked frame skips within 7 minutes of playing.

  • Black screen after LE logo on Minix NEO U1 (s905/2Gb/16Gb) with latest build. No network, no SSH.

    Redownload or/and reinstall it because I don"t have any problem with that build, works fine on my Neo U1.

  • Redownload or/and reinstall it because I don"t have any problem with that build, works fine on my Neo U1.

    I have tried redownloading/reinstalling, tried USB stick instead of SD card. No luck. Don't know what's wrong. Will try the next version.

  • wrxtasy I'm glad to hear it's working out well for you :)

    jd17 I can recreate the frame skips, but haven't compared on 8bit output yet. I won't have a chance to test thoroughly until mid week. The late frame patch update may help, not sure. The next priority for me is 4k output compatibility for users having issues, then I can work on everything else.

    koenkooi Thank you for your testing, noted your results. As mentioning below, I should have a hpll test build specifically targeting output issues shortly. Everything other than 444 or rgb has issues with being set through attr. I'm avoiding this for now since it shouldn't be needed when output is solved.

    Worth noting I'm also on the fence about the contrast changes backported in a recent build. Like many things amlogic, it's a "double-edged sword" in test videos depending on colorspace (ugh).

    Build in OP updated. Changelog:

    • Many amports nougat backports (excluding new multi-instance decoding version). Also backported a possible minor bug of video taking 1/4 of the screen for a flash at start of playback.
    • afl1's late frame patch updated (haven't tested thoroughly at all).
    • Have barely tested, and won't have time until mid-week -- beware, as I hope you are on these builds.

    Used gxbb_p200_2G_minix_neo_u1.dtb from link in OP. Made a fresh install to SD.

    BTW: Running 8.0.2a from NAND with no problem.

    Did you ever run an 8.0.1x nougat build? Are you at 4k output? You might be one of the affected users of the nougat 4k output compatibility bug (see in OP). I'll have a hpll test build targeted at users with this bug shortly. If you have a spare HDMI cable, I also recommend you try a different cable until we come up with a solution.

    Dev note: I found that restoring some hpll registers (frac frame rate support takes some adapting) can bring back marshmallow 4k flicker. If so, you can change the register set sequence to avoid it for the affected clock to avoid it :).

  • Did you ever run an 8.0.1x nougat build? Are you at 4k output? You might be one of the affected users of the nougat 4k output compatibility bug (see in OP). I'll have a hpll test build targeted at users with this bug shortly. If you have a spare HDMI cable, I also recommend you try a different cable until we come up with a solution.

    Kszaq's "Full Nougat" preview ran fine. No 4k or 10bit hardware here. Good old 1080p. i don't think my problem is cable related at that resolution.

  • Hello,

    First of all congrats on your awsome job :)

    I've been testing your dev release with various 4k 10 bits HDR mkv files. BT2020 is sent, and the TV switches to HDR mode.

    Without running the "echo '444,10bit' > /sys/class/amhdmitx/amhdmitx0/attr" command, everything works fine except a stuttering on 24p movies (unsure if it's related to this release, will have to check)

    With the command, I get nothing, a black screen. My TV a Panasonic 50DX750 is 10 bits compliants and I've got a HDMI 2.0a Amazon cable.

    Don't have an AVR which can tell me more precisely what's been send to the TV.

    I have a beelink Mini MX3 2 2/16