RPI400 - HDR

  • Good Morning,

    I have been trying to get HDR to work with my RPI400 on the latest build (12.2.1) with no success. I have another RPI400 with an older build (12.0.2) and if i place it on this TV with these cables HDR works. However, this PI with the latest 12.2.1 LIBREELEC does not detect my display as HDR. Logs are uploaded at:

    https://paste.libreelec.tv/topical-bat.log

    The RPI400 that does detect the display at HDR is running 12.0.2.

    Thanks for any help or insight.

  • In Kodi debug logs there is normally a section after debug <general>: CDRMAtomic::InitDrm - initialized atomic DRM and before the debug <general>: CWinSystemGbm::InitWindowSystem - initialized DRM line that displays info on the EDID data presented on the active HDMI connector Kodi is using. This data is missing from the log. However, in addition to colourspace data, the EDID data contains info on audio capabilities and in the audio section of the log names of the TV and AVR are visible so this appears to be read from the HDMI connctor okay. Most odd..

    popcornmix there's been a couple of similar reports in LE12.2, any ideas?

  • Not sure if this is related, but this is surprising:

    Code
    Connector 0 (33) HDMI-A-1 (connected)
      Encoder 0 (32) TMDS
        Crtc 3 (100) [email protected] 594.000 3840/176/88/296/+ 2160/8/10/72/+ 60 (60.00) P|D 
          Plane 6 (125) fb-id: 726 (crtcs: 1 2 3 4 5) 0,0 1920x1080 -> 0,0 3840x2160 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 P030 XR30 AR30 AB30 XB30 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
            FB 726 1920x1080 XR24
    Connector 1 (42) HDMI-A-2 (connected)
      Encoder 1 (41) TMDS
        Crtc 4 (112) [email protected] 297.000 4096/1020/88/296/+ 2160/8/10/72/+ 24 (24.00) D 256:135

    Do you have a second hdmi display connected?

  • Thanks for your help. No I only have one display but two hdmi outputs. One is a Denon reciever (NO HDR), and one is a TCL TV with HDR. I use one output for sound and the other for video. I did try to just get HDR working by unplugging the AVR, with no change.

  • Ok so in an effort to be more helpful, here are the log files for the the RPI400 that is working

    https://paste.libreelec.tv/thankful-wombat.log

    Looking at this in the area chewitt mentioned I see EDID information. This information is NOT for the TV it is connected to. I forgot that I did "hardcode" the EDIDs for where the PI normally is used and totally forgot when i moved it for troubleshooting purposes.

    Ok so i am going to comment out that portion of cmdline.txt and try again.

    it works still! here are the logs:

    https://paste.libreelec.tv/inviting-eft.log

    And i verified it was using the actual edid of the display. using:

    Code
    edid-decode /sys/class/drm/card0-HDMI-A-1/edid

    Output from above command:

    A snippet for you: Untitled
    edid-decode /sys/class/drm/card0-HDMI-A-1/edid edi
    codeishot.com

    So i think that would confirm its an issue with the newer version of LibreElec? Happy to give more info/data as needed.

    Thanks so much for all the work you all have put into this. It really is great!

  • There is no such thing as an audio-only HDMI connection, so the AVR is advertising video on HDMI-A-2, hence the 4K mode seen in the modetest output. The AVR on HDMI-A-2 passes through the EDID capabilities of the non-existent upstream device; ergo that connector has no HDR support. So if Kodi were using the output of HDMI-A-2 for decision making it would explain why HDR is not seen as possible, but the log shows it selected HDMI-A-1 for DRM output. At that point I have no clue /shrug

  • While trying to get HDR working, leave second hdmi disconnected to avoid complicating things.

    Can you post your edid? One way is to run:

    Code
    cat /sys/devices/platform/axi/axi:gpu/drm/card?/card?-HDMI-A-1/edid | hexdump -v -e '/1 "%02x"'

    and copy/paste the output.

  • chewitt  popcornmix Thanks, I had a followup post, post#5 that you probably did not see yet that was still disabled (I guess because this is a new forum account) - It is above your comment. In that post I show logs of the RPI400 that does work. It shows the output of edid-decode as well on the 12.0.2 RPI400 that appears to work. Sorry my replies are slow, forum wants me to wait 2,400 seconds (40 min!) between replies.

    This is the output of cat /sys/class/drm/card0-HDMI-A-1/edid | hexdump -v -e '/1 "%02x"' on the 12.0.2 PI (that works) [your command did not work]

    A snippet for you: Untitled
    00ffffffffffff00506c53960000010014230103807944780a
    codeishot.com

    This is the full log of the nonworking 12.2.1 pi with only one HDMI connected

    https://paste.libreelec.tv/firm-sloth.log

    This is the output of edid decode on nonworking 12.2.1

    A snippet for you: Untitled
    edid-decode /sys/class/drm/card0-HDMI-A-1/edid edi
    codeishot.com

    This is the output of the hexdump on nonworking 12.2.1

    A snippet for you: Untitled
    00ffffffffffff00506c53960000010014230103807944780a
    codeishot.com
  • The working edid is the typical two 128-byte blocks.

    The not-working edid is four 128-byte blocks which is unusual.

    Not sure if something changed in the 6.6 to 6.12 kernel bump that means the extra edid blocks are reported, and whether their presence causes any issue for display-info library.

    Looks like the first two blocks are the same. The additional blocks decode to:
    ```