max_bpp=24: the real color-bars fix at 5160 wide (#611)

5160px x 4Bpp = 20640 bytes overflows xrdp's 16K bitmap-row buffer ->
"decompressed size too big" -> dropped tiles -> Jump paints bars. 24bpp
rows (15480) fit. Script part 4; live config already applied.

Details: https://projects.knownelement.com/issues/611
This commit is contained in:
2026-09-01 17:05:48 -05:00
parent 55907ba82f
commit 30e4d502a6
+14
View File
@@ -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;"