For an unknwon reason when LG is on another desktop (hidden) and the
user switches to that desktop, the first attempt to grab the pointer
results in a GrabFrozen result. This adds some simple retry logic to
attempt again after a short (100ms) delay which seems to resolve the
issue.
After many months of hard work from our team, I am pleased to announce Beta 5 Release Candidate 1 which brings with it a huge number of improvements.
If you like this project and find it useful and would like to help out you can support this project directly by using the following platforms.
* [GitHub](https://github.com/sponsors/gnif)
* [Ko-Fi](https://ko-fi.com/lookingglass)
* [Patreon](https://www.patreon.com/gnif)
* [Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESQ72XUPGKXRY)
* BTC - 14ZFcYjsKPiVreHqcaekvHGL846u3ZuT13
* ETH - 0x6f8aEe454384122bF9ed28f025FBCe2Bce98db85
Changelog:
**B4-rc1**
* removed SDL displayserver
* reduced amount of GPU buffer allocations in DMABUF import path
* implemented frame damage tracking, used to reduce amount of data copies needed
* added frame damage display mode in EGL backend
* added cimgui/imgui to the project
* added frame timings collection and display
* improved LGMP cursor performance by releasing the memory faster
* implemented eglSwapBuffersWithDamage for X11
* don't allow the mouse to trigger redraws if the video feed is disabled
* New "Overlay Mode" which allows interaction with imgui windows/widgets
* Allow the FPS display to be moved
* Observe XDG_CONFIG_DIR when looking for the configuration
* Added EGL texture import timing graph
* Alerts are now rendered using ImGui
* Added high DPI support
* add JIT rendering mode for wayland
* improve fractional scaling for wayland
* made numbering of IVSHMEM devices consistent
* Added guest cursor warp support to the KVMFR protocol
* Added the ability to have post-processing filters
* Added AMD FidelityFX CAS post-processor
* Added AMD FidelityFX FSR upscaling post-processor
* add DMABUF import support in OBS plugin
* add keyboard LED synchronization
* fix EGL backend not being detected on some systems (e.g. mesa without libglvnd) (edited)
* fix cursor blinking issue on certain hardware (e.g. old Intel integrated graphics)
* Guest cursor is now aligned to the local cursor on window entry using guest cursor warp (Fixes mouse acceleration issues)
* add ability to reorder post-processing filters
* add ability to load and save post-processing filter presets.
* add ability to capture via xdg-desktop-portal+PipeWire on Linux
* windows host installers are now distributed as 64-bit executables
If a new client connects but there has not been a capture timeout the
new client count wont be zeroed on a valid capture. If there is a
timeout later the host will still think there is a new client and
re-send a frame when it should not. This fixes this by reading the value
on a valid frame which zeros the new subs count.
This allows the client to work when the OpenGL implementation fails if
EGL_RENDER_BUFFER is passed, printing a warning. This should fix issues
with Nvidia proprietary drivers on Wayland.
NVIDIA still do not implement a complete/working DMABUF implementation
yet advertise support. Best to tell the public to complain to NVIDIA
instead of assuming it's a LG bug or an issue with their system.
filters are now not run if `egl_filterSetup` returns false, as such we
do not need additional `enable` checks in `prepare` or `run` and we can
bypass the filters even earlier if they are not enabled reducing load.
Since this->prepared will never be set to true unless the filter is
enabled, this results in the framebuffer setup being done every frame
for no reason, causing a lot of texture reallocations.