Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V0.10 cherry picks #321

Merged
merged 2 commits into from
Jul 17, 2024
Merged

Conversation

matt335672
Copy link
Member

Backports #288 and #319 to v0.10

Draft for now - will do some quick testing.

A call to rdpClientConProcessMsgClientRegionEx() from xrdp with the frame
number set to MAX_INT acks all outstanding frames. This is useful when
a decoder has been deleted for a resize.

A second feature of this call is that it ensures the next frame sent is
a key frame in progressive mode.

This is fine for a single monitor system. On a multi-monitor system
however, this logic for this breaks one of the assumptions made by
rdpDeferredUpdateCallback() which is that only updates for a single
monitor are sent at once. In extreme output situations, this can result
in some corruption on a multi-monitor resize.

This PR separates out the key frame request from the frame ACK, and
moves it into the memory allocation logic. Following a memory allocation
or re-allocation, a key frame will always need to be sent.

(cherry picked from commit b728306)
@matt335672
Copy link
Member Author

Sorry - forgot to mark as draft.

Will report back when I've done a module test.

@matt335672 matt335672 linked an issue Jul 17, 2024 that may be closed by this pull request
@matt335672
Copy link
Member Author

All looks good to me. Screen shot of xeyes running with a couple of glxgears. Resizing tested of main 2K monitor (secondary is 1366x768):-

screenshot

I don't have a proper 4K monitor available.

@metalefty
Copy link
Member

Thanks, I will test it on my physical 4k monitor.

@metalefty
Copy link
Member

It works perfectly for me. BTW, was #319 commit cherry-picked with -x option? It looks not.

@matt335672
Copy link
Member Author

I'll redo the cherry-pick. It won't change the code.

@matt335672 matt335672 force-pushed the v0_10_cherry_picks branch from 3cda806 to 9d6c9a6 Compare July 17, 2024 12:37
@matt335672 matt335672 merged commit 1368143 into neutrinolabs:v0.10 Jul 17, 2024
8 checks passed
@matt335672 matt335672 deleted the v0_10_cherry_picks branch July 17, 2024 12:59
@matt335672
Copy link
Member Author

Wiki updated.

@metalefty
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Complex dirty region causes overflow of xrdp comms buffer
3 participants