AMLDisplay: force the modeset when frame packing starts or stops - #84
AMLDisplay: force the modeset when frame packing starts or stops#84cinema-ONE wants to merge 1 commit into
Conversation
Frame packing is the same mode name with a doubled timing. When the display is already at that mode, say after a 1080p24 title with "Adjust display refresh rate" set to "On start", the modeset is skipped because the name has not changed, the driver keeps the 2D timing and the projector shows the top eye stretched with no 3D. Force it when the stereo mode switches into or out of frame packing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The forced mode switch is set here: https://github.com/CoreELEC/xbmc/blob/aml-5.15.196-22.0/xbmc/windowing/amlogic/WinSystemAmlogicGLESContext.cpp#L180 |
|
Thanks - that block is the right place to look, and it explains the gap. It only reaches the stereo-mode Reproduced today on the stock nightly 20260905 (
If you would rather fix it in Analysis and text prepared with Claude Code (Anthropic); the measurements were run on the reporter's box. |
Frame packing is the same mode name with a doubled timing.
aml_set_drmDevice_active()only performsthe modeset when
force_mode_switchis set or the mode name differs from the current one, so when thedisplay is already at
1080p24hz- the previous title was 1080p24, or a 3D title in a playlist followsanother - a frame-packed title sends
3dfpto the driver without a modeset. The driver keeps the 2Dtiming:
vinfostays at 1080 lines, no VSIF is sent, and a frame-packing projector shows the top eyestretched with no 3D.
Force the modeset when the stereo mode switches into or out of
HARDWAREBASED.m_stereo_modeisUNDEFINEDbefore the first switch, so the kernel'sstereo_modeis read for the comparison, ashandle_display_stereo_mode()already does.Measured on an Ugoos AM9 Pro (S905X5M, hdmitx21) against a JVC DLA-RS4100 through an HDFury VRROOM:
TAB clip (1080p24) -> MVC clip:display/mode 1080p24hz,stereo_mode 8,vinfo height 1080,3d_info 0; projector "1080p 24", top half of the frame stretched, no 3D. Sameclip started from 2160p25:
height 2205,3d_info 2, projector "1080p 24(FP)", correct 3D.height 2205,3d_info 2, and back toheight 1080,3d_info 0on stop.
videoplayer.adjustrefreshrate= "On start/stop" hides the problem, because every stop returns tothe desktop mode and the next start is a real modeset; "On start" and playlists expose it.
🤖 Generated with Claude Code