Skip to content

fix(server): tile bitmaps that exceed MultifragmentUpdate limit#1133

Merged
Benoît Cortier (CBenoit) merged 1 commit intoDevolutions:masterfrom
formalco:ramnes/tile-bitmaps
Mar 1, 2026
Merged

fix(server): tile bitmaps that exceed MultifragmentUpdate limit#1133
Benoît Cortier (CBenoit) merged 1 commit intoDevolutions:masterfrom
formalco:ramnes/tile-bitmaps

Conversation

@ramnes
Copy link
Contributor

The NoneHandler sends uncompressed surface commands whose size is proportional to the bitmap area. On large desktops (e.g. 3008x1692 at 32bpp ~ 20 MB), a single surface command easily exceeds the negotiated MultifragmentUpdate reassembly buffer (8 MB by default), causing clients to disconnect.

The approach here is to split oversized dirty rects into horizontal strips that fit within max_request_size before handing them to the bitmap encoder.

@ramnes Guillaume Gelin (ramnes) force-pushed the ramnes/tile-bitmaps branch 3 times, most recently from 131af74 to e2d3ee7 Compare February 27, 2026 19:41
The `NoneHandler` sends uncompressed surface commands whose size is proportional to the bitmap area. On large desktops (e.g. 3008x1692 at 32bpp ~ 20 MB), a single surface command easily exceeds the negotiated `MultifragmentUpdate` reassembly buffer (8 MB by default), causing clients to disconnect.

The approach here is to split oversized dirty rects into horizontal strips that fit within `max_request_size` before handing them to the bitmap encoder.
Copy link
Member

@CBenoit Benoît Cortier (CBenoit) left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks!

@CBenoit Benoît Cortier (CBenoit) merged commit db2f40b into Devolutions:master Mar 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants