diff --git a/12-fix-rdp-bigres.sh b/12-fix-rdp-bigres.sh index fed3cc3..1bfdaa1 100755 --- a/12-fix-rdp-bigres.sh +++ b/12-fix-rdp-bigres.sh @@ -83,6 +83,20 @@ systemctl daemon-reload sed -i 's/^drdynvc=true/drdynvc=false/' /etc/xrdp/xrdp.ini grep -q '^drdynvc=false' /etc/xrdp/xrdp.ini || { echo "drdynvc line missing; check /etc/xrdp/xrdp.ini" >&2; exit 1; } + +############################################################################### +# Part 4 — max_bpp=24: the actual color-bars root cause (2026-09-01 night) +# +# With EGFX off, Jump's fallback is classic bitmap tiles — and xrdp's +# bitmap path DROPS tiles with "libxrdp_send_bitmap: error, decompressed +# size too big: 20640 bytes" because 5160 px * 4 Bpp overflows the 16K +# row buffer. Jump paints the dropped tiles as bars. At 24bpp the row +# is 15480 bytes and fits. (freerdp never hit this: it negotiates +# NSCodec/planar after EGFX goes away.) +############################################################################### + +sed -i 's/^max_bpp=.*/max_bpp=24/' /etc/xrdp/xrdp.ini +grep -q '^max_bpp=24' /etc/xrdp/xrdp.ini || { echo "max_bpp line missing; check /etc/xrdp/xrdp.ini" >&2; exit 1; } ACTIVE=$(pgrep -c -f 'Xorg.*xrdp/xorg.conf' || true) if [ "${ACTIVE:-0}" -gt 0 ]; then echo "Active RDP X sessions: $ACTIVE — xrdp listener restart will blip clients;"