Skip to content

feat(graphics,egfx): add progressive RFX decode and EGFX integration#1197

Open
Greg Lamberson (glamberson) wants to merge 2 commits intoDevolutions:masterfrom
lamco-admin:feat/progressive-rfx-decode
Open

feat(graphics,egfx): add progressive RFX decode and EGFX integration#1197
Greg Lamberson (glamberson) wants to merge 2 commits intoDevolutions:masterfrom
lamco-admin:feat/progressive-rfx-decode

Conversation

@glamberson
Copy link
Copy Markdown
Contributor

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

  • All 5 xtask gates pass
  • Progressive decode has inline unit tests

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.
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