From 1024e7e73b60f2d35ed00deb32273c1288bd1ce7 Mon Sep 17 00:00:00 2001 From: misteraddons <51079966+misteraddons@users.noreply.github.com> Date: Wed, 25 Feb 2026 22:18:12 -0700 Subject: [PATCH] Fix: ignore vga_mode=ypbpr unless direct video is active (#1105) * Fix YPbPr gating and refresh CSC after direct_video auto-detect * Fix direct_video ypbpr bug --- video.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/video.cpp b/video.cpp index 8e4b3f0..777d14e 100644 --- a/video.cpp +++ b/video.cpp @@ -1205,7 +1205,7 @@ static void hdmi_config_set_csc() const float pi = float(M_PI); - int ypbpr = (cfg.vga_mode_int == 1) && cfg.direct_video; + int ypbpr = (cfg.vga_mode_int == 1) && (cfg.direct_video == 1); // out-of-scope defines, not used with ypbpr int16_t csc_int16[12]; @@ -1404,7 +1404,7 @@ static void hdmi_config_set_csc() static void hdmi_config_init() { - int ypbpr = (cfg.vga_mode_int == 1) && cfg.direct_video; + int ypbpr = (cfg.vga_mode_int == 1) && (cfg.direct_video == 1); // address, value uint8_t init_data[] = { @@ -2476,6 +2476,9 @@ static void video_mode_load() // Not a DAC, use normal HDMI mode cfg.direct_video = 0; } + + // direct_video=2 resolves here, so refresh HDMI CSC with final mode. + hdmi_config_set_csc(); } if (cfg.direct_video && cfg.vsync_adjust)