feat(graphics,egfx): add progressive RFX decode and EGFX integration#1197
feat(graphics,egfx): add progressive RFX decode and EGFX integration#1197Greg Lamberson (glamberson) wants to merge 2 commits intoDevolutions:masterfrom
Conversation
ebcdf5d to
8c18a5d
Compare
|
The
One minor observation: WBT_TILE_FIRST tiles with Tested against a captured Server 2025 session: the three Progressive PDUs we have on disk decoded clean. Happy to share the captures + a smoke-test bin if it'd help. |
|
Thanks for the careful review and especially for confirming the On the BTreeMap / On RFX_TILE_DIFFERENCE: confirmed gap. The PDU layer parses the flags byte on TileSimple and TileFirst, but the graphics decoder unconditionally sets |
Add progressive RemoteFX decode pipeline and wire it into the EGFX client and server: ironrdp-graphics: Progressive decode algorithms (first-pass and upgrade-pass coefficient reconstruction via SRL + inverse DWT), tile state tracking for multi-pass refinement, surface-level tile management with automatic quality progression. ironrdp-egfx: WireToSurface2 dispatch for progressive codec in GraphicsPipelineClient. Progressive surface state stored on the server for multi-pass frame scheduling.
The merged progressive primitives PR (Devolutions#1196) added validation that a ProgressiveRegion must contain at least one rectangle. The test used an empty rects vec which now fails decoding.
8c18a5d to
a108923
Compare
Depends on #1196.
Part of the multi-codec EGFX implementation described in #1158 (Section 4).
Summary
Add progressive RemoteFX decode pipeline and wire it into the EGFX client and server.
ironrdp-graphics: Progressive decode algorithms (first-pass and upgrade-pass coefficient reconstruction via SRL + inverse DWT), tile state tracking for multi-pass refinement, surface-level tile management with automatic quality progression.
ironrdp-egfx: WireToSurface2 dispatch for progressive codec in GraphicsPipelineClient. Progressive surface state stored on the server for multi-pass frame scheduling.
Changes
3 files, 1,393 lines.
Test plan