-
Notifications
You must be signed in to change notification settings - Fork 113
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
[WIP] merging in EGFX and resize changes #220
base: devel
Are you sure you want to change the base?
Conversation
079c39c
to
e014588
Compare
4d9dcc9
to
630e628
Compare
9a7fcde
to
7da2cda
Compare
I've made some experiments with this branch with different hardware configurations and same compile (built on a custom ppa) What I discovered is that if lrandr is enabled non nvidia configuration crash immediately
with a nvidia gpu it works and xrandr also shows the rdp0 display that is missing without lrandr. |
I discovered why lrandr crashes if not used with an nvidia gpu: rdpKeyboard:rdpkeybPlug calls xorgxrdpCheckWrap. This one set xf86DriverList[0]->PciProbe if the x driver is NVIDIA. believe it or not, but for lrandr to initialize we depend on the keyboard part and NVIDIA that supposedly needs some crude initialization 😭 |
7da2cda
to
ef7abca
Compare
fdbf86c
to
2076183
Compare
- Add trishume:improve-large-updates-pr with scroll detection removed. - Adding in egfx compatibility written by Jay Sorg. - Adding in Nvidia integration written by Jay Sorg. - Misc fixes to prevent infinite loops from occuring in the driver. - Fixes to enable compatibility with dynamic resolution resizing. - Integrate with the xorgxrdp_helper (acceleration assistant) for direct video memory access. - Use damage to know when opengl, vulkan, vdpau apps draw - Add capture for yuv444 - Adding patch for Nvidia present and dri3 extension compatibility. - Stability enhancements to block capture until invalidate. - Compatibility with xorgxrdp_helper for GFX H264 and RFX PRO - Updated memory allocation. - Adding LRandR extension that enables Gnome 3 with Nvidia. Fix corruption at low latency. This fix was introduced to prevent an infinite timeout/loop problem that resulted from certain edge cases in the dynamic resolution state machine. However, further improvements have rendered this unnecessary. An unintended side effect of this was disabling high-quality timing of the shared memory, resulting in corruption issues. Stress tested the resizing feature again without this, and it works fine.
author Christopher Pitstick [email protected] 1615102163 -0500
committer Nexarian [email protected] 1651116572 -0400
Add trishume:improve-large-updates-pr
With scroll detection removed.
Adding in egfx.
Merging in nvidia_hack.
Avoid potential infinite loop for rdpUpdate.
When frame acknowledgement is enabled, such as with the prototype of
egfx, the driver is at risk of going into an infinite loop if for some
reason an ack is missed.
While this line could fix it from xrdp:
mm->mod->mod_frame_ack(mm->mod, 0, INT_MAX);
,the driver needs to be stable by itself.
The rationale here is that this is akin to a network socket timeout.
After a certain wait, it gives up. Same here.
Also, frame acknowledgement is a quality of service feature, and is not
strictly necessary for the functionality of remote desktop. In the worst
case, bandwidth calcuations between client and server are temporarily
incorrect.
200 was selected after some empirical testing, it could be tweaked.
Merging in xorgxrdp_helper hack.
work on nvidia
work on nvidia
use damage to know when opengl, vulkan, vdpau apps draw
fix for non multiple 64 width desktop, other non logic changes
add nv12_709fr functions
fix for multiple nvidia gpus
add nv12 yuv to rgb for non multiples of 8
add nv12_709fr functions
some fixes for h264 encoder alignments
add a8r8g8b8_to_nv12_709fr_box_x86_sse2 to funcs_x86.h
add capture for yuv444
hack to use helper
helper, don't open stdout/err files
allow for 0 in MIN_MS_TO_WAIT_FOR_MORE_UPDATES
fix for stack overflow
fix for T4
helper pixmap fixes
Fixing bad merge.
More bad merge fixes.
Updates for resizing stability
Updating pre-increment directive.
Small update for consistency with devel.
Fixing clientCon rect_id increment.
Merging in use of flag for nvenc encoding.
Adding in XRDP_USE_HELPER
Adding 444 capture.
Adding patch for Nvidia present and dri3 extension compatibility.
Stability enhancements to block capture until invalidate.
Stability improvements.
Fixing retry issue.
Compatibility with latest xrdp.