3D on x86 LibreELEC with AMD graphics (test builds)

  • Native HDMI 3D now works on amdgpu too, with popcornmix's Kodi branch unchanged.


    Box: LibreELEC (Generic x86_64, kernel 7.2.3) on a NUC with a Radeon RX 7600, HDFury VRROOM, JVC DLA-RS4100. Frame packing, top-and-bottom and side-by-side at 1080p24, RGB 12-bit, all engage the projector's 3D mode with correct per-eye geometry; MVC remuxes and 3D ISOs play through popcornmix's patches (his ffmpeg MVC decoder included), subtitles at the authored depth on both. The GUI runs at 8K60 over FRL with DSC on the same connector.


    Kodi needed nothing beyond popcornmix's branch. amdgpu needed three kernel changes, now prepared as a series for amd-gfx: expose the HDMI 1.4 3D modes on HDMI connectors and scan them out as 2D with only the vendor infoframe announcing the layout (any DC stereo timing format makes the hardware treat the surface as two views), send the 3D_Ext_Data byte for top-and-bottom (the JVC ignores the 5-byte frame), and size frame-packed streams by the doubled 2205-line timing. Two unrelated FRL defects found on the way are filed as drm/amd issues 5770 and 5771.


    One small Kodi-side addition went to popcornmix as a PR (https://github.com/popcornmix/xbmc/pull/30): authored subtitle depth for MVC remuxes (his store is fed from the Blu-ray input stream only).


    A note for anyone testing TAB or SBS on a display that also offers frame packing: the current mode selection always takes frame packing, whatever "Preferred mode" says; KODI_3D_PREFER=tab|sbs in Kodi's environment is the way to force the other layouts.


    Posted on behalf of the box's owner; text prepared with Claude Code (Anthropic).

  • Correction to the note above: forcing top-and-bottom or side-by-side output does not need the environment knob. popcornmix's branch has stereoscopicpreferframepacking in advancedsettings.xml (<video><stereoscopicpreferframepacking>false</stereoscopicpreferframepacking></video>), which makes the half modes win the selection; alternatively, with "Adjust display refresh rate" off, a TAB or SBS mode picked by hand in the resolution setting stays put. Thanks to popcornmix for the pointer.

    Posted on behalf of the box's owner; text prepared with Claude Code (Anthropic).

  • The series is on the amd-gfx list, v3 as of this afternoon: https://lore.kernel.org/amd-gfx/202609…[email protected]/

    Patch 1 lets DC accept HDMI 1.4 3D modes on HDMI connectors and announces the layout in the HDMI VSIF, patch 2 sends the 3D_Ext_Data byte for top-and-bottom, patch 3 sizes the frame-packed stream by the doubled timing. They are against amd-staging-drm-next.

    The LibreELEC branch I run is here, with the same changes as patches against the 7.2 kernel plus popcornmix's Kodi stack: https://github.com/cinema-ONE/Lib…patches/default (0100 to 0104; 0101 additionally adds half side-by-side 1080p modes to the EDID parser, which is not part of the series).

    Prepared with Claude Code (Anthropic).

  • In principle yes. The kernel changes sit in the shared amdgpu display-manager code (mode acceptance, the HDMI VSIF InfoFrame, stream sizing), nothing in them is specific to the RX 7600, and the MVC decoding is done in software by popcornmix's ffmpeg decoder, which a 5800H handles easily at 1080p.

    Two caveats. I have only tested the RX 7600 on a 7.2 kernel, so an integrated Vega (DCN 2.1) is untested. And the patch enables 3D only on native HDMI connectors: if the SER5 routes its HDMI port through a DisplayPort-to-HDMI converter chip, as some mini PCs do, the kernel sees a DP connector and nothing happens. Check with ls /sys/class/drm/, the port you use must show up as card0-HDMI-A-1 rather than card0-DP-1.

    Prepared with Claude Code (Anthropic).

  • Thanks. I can just try LE off a USB stick and see if 3D works. Which build should I try? I assume popcornmix's work hasn't made it into official stable or nightly yet.

    Kodi is heading towards stable release of Piers (stable now, but rc1 imminently), so we're not going to see any of this upstream before that is released and master is back to new features for Q*.

  • There is no official build with it, as popcornmix says. What I run is a LibreELEC Generic x86_64 development image built from the branch linked above: LibreELEC master plus kernel 7.2.4 with the 3D patches, popcornmix's Kodi branch and his MVC-capable ffmpeg. I have put today's image up here: https://github.com/cinema-ONE/Lib…ound20-20260908 - the .img.gz boots from a USB stick like any LibreELEC Generic image. It is a development build made for one machine, so expect rough edges; the release notes list what is in it and the two settings that matter (the 1080p24 3D whitelist entries and "Adjust display refresh rate" on start/stop).

    Prepared with Claude Code (Anthropic).

  • If it makes sense to start a new thread, let's do so, or if one exists for 3D, please point me there.

    Just tested on my Beelink SER5 mini PC. Good news: All 3D formats work! Cool! Just like RPi5 ... but, man, is this PC sluggish as heck running LE. Maybe because I installed to a USB stick? 3D played, but lots of stuttering and freezing, and LE/Kodi use is painful. Ran CPU benchmark:

    This score is 575% better than the Cube2 I'm using for 3D as well, and 127% better than RPi5. So, what gives :)?

  • This thread is for native HDMI 3D (frame packing, top-and-bottom, side-by-side, MVC Blu-ray and remuxes) on x86 LibreELEC with AMD graphics. It grew out of popcornmix's Raspberry Pi thread (3D Support builds for Raspberry Pi); please keep Pi questions there.

    What it is: LibreELEC Generic x86_64 built from LibreELEC master with kernel 7.2.4 plus five amdgpu/drm patches (HDMI 1.4 3D modes on HDMI connectors, the 3D layout announced in the HDMI InfoFrame, frame packing with the doubled timing), popcornmix's Kodi branch fix-stereoscopic-3d-gbm-upstream on top of Kodi 22 beta 2 (MVC playback, 3D Blu-ray ISO, authored subtitle depth including MKV remuxes) and his MVC-capable ffmpeg. The kernel patches are on the amd-gfx list as a three-patch series: https://lore.kernel.org/amd-gfx/202609…[email protected]/ - the Kodi work is popcornmix's and will go upstream after the Piers release.

    Download: https://github.com/cinema-ONE/Lib…ound20-20260908 (img.gz for a USB stick, tar for updating an existing LibreELEC, sha256 alongside). Source branch local/frl-72y-3d in the same repository. This is a development build made for one machine, expect rough edges.

    Tested: Radeon RX 7600 (RDNA3, DCN 3.2.1) on an Intel NUC through an HDFury VRROOM to a JVC DLA-RS4100, frame packing, TAB and SBS at 1080p24 in 12-bit RGB, MVC playback and authored subtitle depth from ISO and MKV. Reported working by ht2tweak on a Beelink SER5 (Ryzen 7 5800H, integrated Vega, DCN 2.1), all 3D formats.

    Requirements: a native HDMI output on the GPU, the connector must show up as card0-HDMI-A-* in /sys/class/drm; a DisplayPort-to-HDMI converter does not work because the 3D signalling is HDMI only. Software decoding of MVC needs a reasonably fast CPU (a 5800H is plenty).

    Settings after first boot: Whitelist (Settings > System > Display) with your 2D modes plus the 1080p24 3D entries, e.g. 0192001080024.00000ptabfrp, 0192001080023.97608ptabfrp, 0192001080024.00000ptab, 0192001080023.97608ptab (the 23.976 identifier must read exactly as your box offers it). "Adjust display refresh rate" on start/stop. "PRIME Render Method" (Settings > Player > Videos, Advanced level) set to EGL, because software decoded MVC frames cannot go straight to a display plane on amdgpu (xbmc/xbmc#29160). Frame packing is chosen by default; KODI_3D_PREFER=tab or sbs in Kodi's environment or stereoscopicpreferframepacking false in advancedsettings.xml changes that.

    When reporting, please include the GPU, how the display is connected (direct, AVR, HDFury, splitter), what the display's info panel shows during playback, and a debug log (enable debug logging, play one clip, run pastekodi over SSH and post the link).

    Prepared with Claude Code (Anthropic).

  • Thanks for trying it, that is the first report from a different AMD GPU (Vega, DCN 2.1), so the kernel side is not RX 7600 specific. Good to know.

    The stuttering has a likely cause. MVC is decoded in software, and on this build Kodi's default "PRIME render method" hands such frames straight to a display plane, which on amdgpu does not take the software decoder's pixel format; on my box that path stalled outright until I changed Settings > Player > Videos > "PRIME Render Method" from "Direct To Plane" to "EGL" (settings level Advanced or higher). Please try that first. The upstream issue is xbmc/xbmc#29160. If it still stutters, a debug log would show whether the GPU driver loaded and where the time goes: enable debug logging (Settings > System > Logging), play one clip, then run pastekodi over SSH and post the link it prints. The USB stick can make the GUI feel slow as well, but it should not affect playback once a clip runs.

    On the thread question I agree, x86/amdgpu does not belong in popcornmix's Raspberry Pi thread. I have opened a separate one, 3D on x86 LibreELEC with AMD graphics (test builds) - it becomes visible once a moderator has approved it, let us continue there.

    Prepared with Claude Code (Anthropic).