File looking-glass-client.changes of Package looking-glass-client
------------------------------------------------------------------- Sun Dec 25 00:06:55 UTC 2022 - pousaduarte@gmail.com - Update to version 20221209~B6: * [host] nvfbc: increase retry timeout to 1 second * [host] nvfbc: retry on failure to init * [client] wayland: implement window size setting for xdg-shell * [host] windows: log to stderr that logs will continue in file * [host] app: clarify that config file not found is not fatal * [obs] fix compatibility with updated LGMP build * [host] app: improve throttleFPS logic * [client] update LGMP to fix buffer overflow bug * [client] main: fix spice display fallback when waiting for LGMP upgrade * [host/client] lgmp: update to fix possible race issue * [host] app: correct timer restart on lgmp corruption recovery * [host] app: ensure that `rand` will be random * [host] lgmp: update LGMP again to fix bug in last update * [host] lgmp: update to fix failure to randomize the session ID * [module] swap offset & size in printk output for consistency * [module] cosmetics * [host] app: don't stop the lgmpTimer on session recovery * [client] remove non-prototype function declarations * [client] audio: use actual device period if larger than expected maximum * [obs] Fix function call causing crash on lgUpdate * [cmake] CheckSubmodule: check for nanosvg * [repos] nanosvg: convert to submodule * [client] keybind: fix typo ------------------------------------------------------------------- Sun Sep 25 00:09:10 UTC 2022 - pousaduarte@gmail.com - Update to version 20220921~B6rc1: * [repo] update PureSpice to fix cursor visibillity issue * [doc] install: fix forumla again * [doc] install: remove syntax highliting from ivshmem formula * [doc] install: cleanup ivshmem forumla formatting * [doc] install: be a bit clearer about calculating the ivshmem size * [client] spice: wait 1 second before attempting to use spice video * [doc] css: add custom style for <kbd> elements * [doc] usage: improve ini syntax documentation * [doc] usage: fix command name bolding * [client] opengl: render cursor in spice mode * [client] wayland: fix attempt to confine when pointer is locked * [client] egl: recalculate mouse position when toggling spice * [repos] update PureSpice to fix none cursor handling * [doc]: a bunch of consistency fixes * [client] main: add support for spice cursor channel * [client] render_queue: support cursor operations * [client] egl: support rendering cursors in spice display mode * [repos] update PureSpice to include cursor channel * [doc]: use arrow characters * [doc]: make title casing consistent * [doc]: `usage.rst`: update supported configuration options * [doc]: `usage.rst:`: add new keybindings * [doc] add common ivshmem sizes and additional warnings/notes * [doc] fix typo * [doc] add comment to state that NvFBC reads NVFBC_PRIV_DATA if set * [doc] added host usage documentation for DXGI and NvFBC * [doc] update copyright year * [doc] added spencercw to the words list * [doc] added spencercw to the LG docs credits * [resources] adjusted spacing on updated icon * [resources] updated icons to the correct glyph * [doc] update FAQ regarding Audio support * [doc] reorder and update installation section * [doc] fix another typo * [doc] fix my inabillity to spell :) * [doc] reorder install to before usage and change information re IVSHMEM * [doc] add requirements page * [client] x11: set _NET_WM_PID * [client] egl: fix usage `destRect, 0x0 is top left * [client] wayland: handle wl_data_source.target action * [obs] Allow the client to auto-recover * [client] egl: fix the incorrect mask for dmabuf plane0 modifier * [client] egl: add support for EGL_EXT_image_dma_buf_import_modifiers * [client] keybind: add ScrollLock+C to cycle microphone defaults * [client] main: move micDefaultState into g_state * [client] main: better error when no display server is available * [client] displayservers: add name field * [host] fix building under void linux * [all] add 0xdc to AUTHORS * Add a setting that hides the mouse cursor * [client] x11: add dependency on xkbcommon * [client] wayland: correctly convert scan codes to numbers * [client] all: use the defined keyboard mapping for keybinds * [module] Bump kvmfr module to 0.0.8 after latest fix for Kernel 5.18 * [github] Add initial CODEOWNERS file for docs/ * [common] appstrings: Amend blurb for jjrcop with fluff * [client] wayland: fix infinite resize loop * update AUTHORS * [module] fix compile on 5.18 * [client] main: fix failure to startup when the guest VM has no UUID * [client] wayland: deal getting scale before size * [ci] switch to checkout v2 * [client] cmake: pass -Wstrict-prototypes for C files only * [all] cmake: standardize indentation to 2 spaces * [client] app: fix segfault when jitRender + spice display is in use * [client] overlay/status: re-rasterize at high DPI when needed * [client] overlay/graphs: allow unregistering after shutdown * [client] interface: remove needsRender from renderers * [client] render_queue: fix failure to show spice at startup * [client] main: don't start the overlay tick timer until init is done * [client] spice: fix duplicate keybind registration * [client] splash: added LG url, version and copyright strings * [client] egl: perform full damage if a post processing option is changed * [client] app: add option to disable dimming in overlay mode * [client] config: cosmetics * [client] splash: add back support for win:quickSplash * [client] audio: allow microphone recording to be toggled after dialog * [client] main: remove micAlwaysAllow from g_params * [client] audio: switch to use config value audio:micDefault * [client] config: replace audio:micAlwaysAllow with audio:micDefault * [client] main: add micDefaultState to state and params * [client] splash: pre-calculate & cache the radial gradient vectors * [client] spice: wait for the spice connection to finish at startup * [client] main: don't show the splash when transitioning to spice * [client] egl: remove no longer used drawing functions * [client] egl: remove unused splash shaders * [client] all: unify the LG splash screen into an overlay * [client] add SVG loading support and use icons for status display * overlay: move init/free to the context of the render thread * [client] update PureSpice submodule for uncompressed video support * [client] main: fix race condition on usage of events * [client] spice: delay showing the spice display until spice is ready * [client] spice: update PureSpice to fix display disconnection issue * [client] egl: add spice display support * [client] spice: initialize new surfaces to black * [client] spice: more fixes to video source transition * [client] app: better handling of transition to/from spice display * [client] egl: added missing case from texture init * [client] egl: implemented SPICE display support * [client] egl: check for null before free * [client] egl: fix mistake in rect clamping * [client] spice: added initial framework for spice display fallback * [client] update PureSpice submodule * [client] egl: allow for partial texture updates * [client] spice: update submodule to apply new socket handling changes * [host] nvfbc: try all NVIDIA adapters in the system * [host] dxgi: fix incorrect skip logic * [host] dxgi: don't try to use devices without d3d support * [client] egl: only upload the damage rects if they actually changed * [host] capture: fix compilation with NvFBC C++ sources * [common] Update framebuffer metadata + references * Update AUTHORS * [client] x11: set window posision before entering fullscreen * [doc] allow monero (XMR) crypto addresses * [doc] add XMR to the list of valid words * [client] overlay/config: general UX changes * [common/doc] add monero (XMR) donation address * [doc] usage: Update Full Command Line Options * [doc] usage: Move Command Line Options to the top * [doc] build: Change link text leading to client_install * [doc] build: Change Client Building notes to full cmake commands * [doc] build: Adjust flow of Client Building section * [doc] usage: Move client install instructions to install.rst * [doc] Create usage.rst from install.rst No edits * [client] x11: check for null data from XGetWindowProperty * [client] spice: fix spice shutdown race * [client] config: enhance input:escapeKey to accept a KEY_* string value * [client] main: add new option for integer only upscaling * [client] egl: update AMD FSR to 1.0.2 * [host] nvfbc: add downscale support * [host] linux/pw: add missing include for `min` define * [host] xcb/pipewire/nfbc: use `min` and correct inverted logic * [host] nvfbc: fix inverted truncated frame logic * [client] fix invalid bitwise comparison * [host] pw: fix build due to frame info structure changes * [host] xcb: fix build due to frame info structure changes * [host] nvfbc: fix build due to frame info structure changes * [host] dxgi: check for invalid usage of d3d12 & downsampling * [host] dxgi: refactor dxgi_copyFrame * [host] dxgi: match the last entry in the downsample rule list * [host] dxgi: finish downsample support for d3d11 backend * [host] dxgi: fix failure to copy to texture with sub resources * [client/obs] update to support downscaled frames coming from the host * [host] dxgi: add support for downsampling the capture before sending * [client] audio/pw: pw_stream_get_time() deprecated * [all] Add Babbaj to AUTHORS * [client] audio/pw: fix muting * [client] overlay/record: do not invalidate window during shutdown * [client] audio: display record indicator when necessary * [client] config: add new option audio:micShowIndicator * [client] overlay: add record indicator * [client] audio: avoid prompting when changing record format * [client] audio: cancel confirm dialog when a new recording starts * [client] audio: prompt before allowing audio * [client] config: add new audio:micAlwaysAllow option * [client] audiodevs/pipewire: implement proper recording stop/restart * [client] overlay/msg: fix type for app_msgBoxClose * [client] overlay: add support for confirmation dialogs * [client] core: remove state tracking in core_updateOverlayState * [host] xcb: fixed early start of pointer thread by adding xcb_start * [client/common] fixes for issues detected through static analysis. * [client] overlay: make "Show timing graphs" checkbox consistent in case * [host] dxgi: add nanosecond-scale sleep capability to d3d12 * [client] input: fix confine_pointer argument marshalling * [client] enforce building with -Wstrict-prototypes * [client] kb: update for ImGui 1.87 * [client] update cimgui submodule * [client] audio: reduce hardcoded minimum latency * [client] audio: reduce resampler latency * [client] audio: use block comments * [client] audio: add latency tuning parameter * [client] audio: make the requested audio device period size configurable * [client] audio: fix latency calculation if audio device starts early * [client] audio/pa: wait until stream is ready before starting playback * [client] audio/pa: fix assertion failure when keep alive playback stops * [common] allow building with -Wstrict-prototypes * [host] build with -Wstrict-prototypes * [client] allow building with -Wstrict-prototypes * [all] update submodules * [client] audio/pw: request real-time priority * [client] audio: open device earlier * [common] appstrings: add spencercw * [host] linux: remove useless libX11 dependency * [host] linux: remove useless GL dependency * [host] ci: install pipewire on Linux * [host] linux: build with PipeWire by default * [client] main: fix invalid bit logic * [all] convert KVMFR frame bools to flags in a bitfield * [client] x11: added request activation support * Revert "[client] x11: check if the EWMH atoms exist before using them" * [client] x11: check if the EWMH atoms exist before using them * [client] audio: keep audio device open after playback * [client] audio: increase startup latency * [client] spice: update submodule to disable audio draining * [client] x11: Add inline icon * [host] cleanup some missing (void) parameters * [client] ci: stop installing wayland-protocols from apt * [client] wayland: use `wayland-protocols` from submodule * [repos] add `wayland-protocol` submodule * [client] main: fix failure to check KVMFR udata at connect * [client] egl: use texture sampler for desktop * [client] egl: remove extra sampler from TextureBuffer * [host] windows: plumb guest activation request to host * [host/client] kvmfr: request activation based on guest state * [client] ci: install newer wayland-protocols repository * [client] main: request WM activation on first frame * [client] wayland: activate our window if we're allowed * [client] ds: expose activation requesting * [client] wayland: implement activation request * [client] wayland: bind `xdg_activation_v1` when available * [client] wayland: build xdg-activation-v1 header * [client] audio/pw: increase startup latency * [client] audio: tune target latency * Revert "[client] audio: tune the target latency based on the latency jitter" * Revert "[common] option: fix bounds check in the argument parser." * [common] option: fix bounds check in the argument parser. * [client] audio: tune the target latency based on the latency jitter * [client] audio/pw: get the period size to determine when to start audio * [client] audio: change the audio latency graph sample point * Revert "[client] audio: allow the audiodev to return the periodFrames" * [client] audio: fix setfault due to failure to properly reset * [common] rb: correct invalid accesses of atomics * [github] add libsamplerate0-dev to the workflow * [doc] build: add missing audio dependencies * [client] audio: allow building without any audio support * [client] audio: check for malloc failure * [client] audio: cosmetics * [client] audio: allow the audiodev to return the periodFrames * [client] audio: adjust playback speed to match audio device clock * [common] ringbuffer: add unbounded mode * [client] audio: stop playback immediately if new playback is started * [client] audio/pw: drop restarting state * [client] audio/pw: drop redundant flushing state * [host] linux: allow getting system version * [host] nvfbc: shorten nvfbc_getName() result * [host] windows: read ProductName from registry if possible * [host] app: don't read from UUID if none is returned * [client] egl: use a sigmoid curve for nv * [client] main: fix heap-buffer-overflow on cursor update * [host] windows: report windows version information * [host] app: report the full capture name to the client * [client] fix race segfault on pointer queue unsubscribe/timeout * [client] egl: set the active preset if specified at launch * [client] egl: fix null pointer access when no preset is set * [client] egl: added `egl:preset` to load a default preset at startup * [client] egl: make egl less noisy unless debug is specified * [client] x11: cleanup duplicated code * [client] x11: sync the mouse on meta resize * [client] x11: fix failure to unfocus when performing meta resize/move * [client] egl: fix masked color cursor blend operation for xor drawing * [client] egl: properly apply xor mask to masked color cursors * [common] ivshmem: fix memory leak * [common] ivshmem: check for failure to find a device * [client] core: redraw cursor after warping guest cursor * [client] overlay: realign cursor when turning off overlay * [client] egl: fixed incorrect drawing of masked color cursors * [client] opengl: fix startup since ImGui upgrade * [client] main: only copy the needed cursor data instead of everything * [client] main: lgmpClientMessageDone is not idempotent * [client] egl: remove duplicate #include "app.h" * [client] opengl: make draw functions static * [client] spice: update the submodule to fix invalid header errors * [client] audio: report the buffered frames and not the buffer length * [doc] build: Add source comment for listing deps * [client] audio: fix failure to properly handle restart if draining * [client] audio: fix use after free race * [client] spice: update PureSpice submodule to reduce audio latency * [client] audio: move the memory copy into the pull function * dxgi: check for memory leaks in d3d12 * dxgi: cosmetics * dxgi: cache shared handles instead of re-creating them * [client] audio: allow the audiodev to determine the start fill level * [client] audio: fix latency calculation * [client] audio: don't lock when consuming frames from the buffer * [client] audio/pw: return the actual playback latency * [client] audio: tell the audiodev to stop on the last packet, not after * [client] audio: remove duplicated line * [client] audio: drain buffers on stop instead of just discarding them * [client] audio: rework audiodevs to be pull model from a common buffer * [client] graphs: overlay on removal of graph * [client] audio: redraw the graphs if they have been updated * [client] audio: reduce timing graph sample count to 30 seconds * [client] audio: add audio playback latency interface and graph * [client] audio/pw: fix memory leak and gracefully shutdown * [client] overlay/graph: actually remove unregistered overlays * [client] overlay/graphs: allow the graph to have a custom title format * [client] app: allow key-repeat to work with keybinds * [client] main: don't use Linux keybinds if the guest is not Linux * [host] dxgi: remove duplicate AcquireLock print * [host] dxgi: allow the debug layer to be turned on via config * [host] dxgi: add ability to capture OutputDebugMessage * [vendor] directx: add d3d12sdklayers.h * [host] dxgi: move d3d12.h to vendor/directx * [client] Add capture mode support for media keys * [client] Add support for volume keys in capture mode * [client] imgui: allow arrows to be displayed * [client] spice: allow volume control keys to be sent to the guest * [client] input: avoid reentrancy when realigning guest cursor * [common] linux/time: fix memory leak * [client] egl: increase texture processing timeout * [module] fix compile on 5.16 * [host] dxgi: fix frame damage method parameters * [client] x11: don't use primary selection for clipboard * [host] dxgi: fix d3d11 assertion failure * [client] spice: update submodule to fix corrpution during connect * [common] linux: replace `create_timer` with a single threaded timer * [client/common] move ll from the client into the common code module * [client] all: remove `ll_walk` and migrate over to `ll_forEachNL` * [client] ll: fix error in ll_forEachNL macro * [client] msg: add missing header file * [client] close message boxes if the client connects * [client] spice: fix memory leak * squash with ll * [client] overlay/msg: provide a method to close messages from code * [client] ll: add new functionallity to allow removal of items * [client] spice: update submodule to prevent segfault on shutdown * [client] spice: update submodule to fix double free bug * [host] dxgi: Replace standard asserts with `DEBUG_ASSERT` * [client] audio/pw: use rate matching * [client] audio/pw: set maximum node latency * [client] audio/pw: delay playback to avoid glitches * [client] audio/pw: flush playback buffers before stopping * [client] audio/pw: don't discard playback data * [host] dxgi: add configurable sleep before D3D12 copy * [host] dxgi: add option to disable damage-aware copies * [host] dxgi: allow copy backend selection * [host] dxgi: add preRelease callback * [host] dxgi: implement Direct3D 12 texture copy backend * [host] dxgi: add d3d12.h from latest MinGW * [host] dxgi: refactor to support additional copy backends * [host] lgmp: update repo to fix compliler error * [client] core: fallback to manual realignment if the LGMP message fails * [host] lgmp: update submodule to fix memory alignment issues * [host] app: dont use pointers when realloc may have changed them * [host] cmake: add ubsan and asan to CMake (needs clang64 on windows) * [host] dxgi: damage all textures when skipping frame * [client] main: added user feedback during LGMP/KVMFR version check * [client] msg: allow messages to contain blank lines and separators * [client] spice: upgrade submodule to avoid errors on intentional stop * [client] spice: show message when connected to the wrong guest * [client] overlay: add modal message dialog support * [client] overlay: add `app_invalidateOverlay` method * [client] app: move all alert management into overlay/alert.c * [client] overlay: add 25Hz `tick` function * [client] imgui: render twice for alerts * [client] imgui: update to cimgui 1.86 * [client] main: print guest CPU socket count information * [host] app: send CPU socket count information * [common] kvmfr: add field for CPU socket count * [client] cpuinfo: implement CPU socket count for Windows * [client] cpuinfo: implement CPU socket count for Linux * [common] cpuinfo: add sockets to interface * [client] audio: remove more debug output spam * [client] audio: remove debug spam * Update AUTHORS * [host] nvfbc: Fix dwmapi linking error * [client] audio/pw: implement record support * [client] audio: don't call `record.mute` if it's not supported * [client] audio/pw: fixed another search/replace mistake * [client] audio/pw: fix search/replace error * [client] audio/pw: refactor to use `playback` for playback methods * [client] audio: implement record interface and glue * [client] audio: always store the volume & mute state for restore * [client] audio: move audio code into it's own unit * [client] audio: refactor `audio` to `playback` and add `record` funcs * [host] windows: fix usage of MCSS and try to get priority "Capture" * [host] windows: set DwmFlush default to off * [host] nvfbc: add DwmFlush here too as it makes a large difference * [host] windows: opt into the Multimedia Class Schedule Service * [host] dxgi: use DwmFlush to sync to presentation interval * [client] main: failure to find a renderer is an error * [client] main: format the guest information a bit better * [client] main: move checkUUID to after informational prints are done * [client] main: fix reversed check logic from testing/debug * [client] main: if spice is in use check the guest uuid matches * [host] windows: parse the UUID from the SMBIOS * [obs] allow for the larger KVMFR header size now * [host] app: implement stubs for platform specific guest information * [client] main: fix out by one error in the bounds check for os type * [client] main: parse the KVMFR records and log the details * [host] app: zero memory allocated for lgmp userdata * [common] only define min/max if they have not already been defined * [all] refresh copyright dates * [all] move min/max and upcast macros into `common/util.h` * [host] nvfbc: fix failure to startup * [host] app: remove debug line and fix my failure to count * [host] app: fix out by one compiler warning * [host/client] kvmfr: update to include extra user data about the VM * [client] spice: update PureSpice submodule to fix UUID format bug * [client] egl: check for null gl strings * [client] spice: update PureSpice submodule * [client] fix accidental submodule version change * [all] ci: libdecor-dev is now libdecor-0-dev * [host] intiialize the app state earlier to prevent ovewriting re-inits * [client] spice: allow spice startup to happen in parallel * update purespice submodule * [client] don't report a spice error on graceful shutdown * [client] main: release the grab if the host application is stopped * [host] correct reinit logic when LGMP corruption is detected * [host] detect header corruption and re-initialize if so * [client] undo commented code from debugging * [host] lgmp: update to fix regression in initialization of the header * [host] lgmp: update the lgmp submodule * [client] spice: update submodule and update to use new PSConfig members * [client] spice: update submodule for improved logging * [client] spice: update PureSpice submodule and adjust for new API usage * [common] provide debug print methods for dependent libraries to use * [client] spice: update PureSpice submodule and update includes * [client] spice: update submodule and refactor calls & types * [host] pipewire: report stream state * [version.cmake] Add reminder to synchronize git-describe with docs/lgrelease.py * [doc] fix typo and add `Debian` to the word list * [host] app: support force quitting * [doc] add link to the wiki for dependencies on other distributions * [client] egl: determine mouse scale using both horiz and vert size * [doc] build: Fix apt command overflowing page * [host] pipewire: use new format for 10-bit colour * [client] egl: simplify EGL torus code * [client] core: set the correct cursor when exiting overlay * [client] core: invalidate the pointer state when overlay is disabled * xcb: added basic cursor support via xcb_fixes * xcb: Fixed return value of xcb_deinit * xcb: added xcb_stop and xcb_initOptions support * [client] core: don't try to send LGMP messages if the video is stopped * [doc] Minor cleanup to release spelling check * [doc] Version no longer gets spellchecked * [client] audio/pw: it's Looking Glass, not LookingGlass * [client] ci: add new libpulse-dev dependency * [client] audio/pa: added initial pulseaudio implementation * [doc] conf: Fix typo in release git-describe command * [docs] all: Change nav background from transparent to explicit * [docs] all: Fix mobile layout * [doc] all: Center content when there's room * [docs] all: Switch to sphinx-readthedocs-theme * [doc] automatically detect version * [host] installer: enable DPI awareness * [host] ci: test IVSHMEM installer build * [host] installer: add ability to install IVSHMEM driver * [host] installer: clean up trailing whitespace * [host] nvfbc: add an option to specify adapter * [client] audio/pw: use scaling forumula provided by quantum * [client] audio/pw: implement volume and mute control * [client] audio: update PureSpice and add support for volume control/mute * [client] audio/pw: gracefully shutdown when asked to * [client] audio: call audioDev->free on spice thread exit * [client] ci: build with PipeWire * [client] audio/pw: don't re-create an idle stream with matching format * [client] audio/pw: limit how much data gets buffered to reduce latency * [client] audio/pw: make use of the new ringbuffer consume/append funcs * [common] ringbuffer: remove exta locking and add append/consume funcs * [client] audio/pw: properly manage the stream state * [client] audio/pw: set the node name * [client] audio/pw: don't actually stop when SPICE signals a stop * [client] audio: initial addition of PipeWire audio support via SPICE * [common] ringbuffer: added shift and locking for thread safety * [client] egl: keep the mouse cursor 1:1 when downscaling ------------------------------------------------------------------- Sun Dec 26 12:41:05 UTC 2021 - pousaduarte@gmail.com - Update to version 20211226~B5: * [docs] Minor semantic spit and polish * [doc] spelling fixes * [doc] module: Kernel Module polish * [doc] install: Update command line options * [doc] install: Overlay Filter config polish * [doc] install: Overlay Mode polish * [doc] conf: Whitespace * [doc] install: Config file loading polish * [doc] obs: Install polish * [doc] faq: GNOME on Wayland polish * [docs] build: Better flow for Wayland tip * [host] dxgi: fix typo in debug log message * [all] gitignore: ignore __pycache__ and *.py[co] * [host] nvfbc: fix comments in updateDamageRects * [client] input: fix race between window size and guest cursor * [doc] module: Bring back older style XML * [client] wayland: handle NULL wl_keyboard on destruction * [client] wayland: don't create confines on uncapture without wl_pointer * [client] wayland: create wl_relative_pointer when creating wl_pointer * [client] wayland: clean up objects when wl_pointer disappears * [client] x11: don't override the focus state if no EWMH focus support * [client] x11: be more agressive grabbing the pointer * [doc] module: Modify libvirt commandline block to use JSON * [client] x11: protect against msc overflow with jitRender * [client] x11: don't use the atomic msc value when we already have it * [client] wayland: make cursor change work without wl_pointer * [all] cmake: refuse to perform in-source builds * [client] egl: dmabuf can be used without GL_EXT_buffer_storage support * [client] x11: fix broken grab retry logic * [client] x11: work around issue with desktop switch on i3 * [client] x11: properly detect WMEH support for focus events * [docs] obs: fix installation instructions grammar ------------------------------------------------------------------- Thu Dec 16 11:06:21 UTC 2021 - pousaduarte@gmail.com - Update to version 20211214~B5rc1: * [client] egl: handle eglQuerySurface(EGL_BUFFER_AGE_EXT) error * [client] x11: fix issue with grab when clicking on the unfocused window * [client] x11: cosmetics * [all] cmake: fail if wrong submodule version is checked out * [client] egl: increase the damage box for the cursor * [client] egl: use linear filter when not scaling * [client] x11: fix failure to set window position correctly when set * [docs] obs: update instructions to make use of `USER_INSTALL` * [client] egl: make use of glsl's textureSize function * [client] main: fix buffer overflow due to cursor data size change * [common] time: fixed time values in nsleep * [client] main: malloc buffer for cursor data instead of using the stack * [host] nvfbc: be more intellegent when unionizing disjointed sets * [common] rects: fix error introduced in cosmetics patch * Revert "[common] rects: fix damage regression introduced in the cosmetics patch" * [common] rects: fix damage regression introduced in the cosmetics patch * [client] egl: use `alloca` instead of typecasted char array * [common] rects: fix return value of `removeRects` * [common] rects: de-dup code and don't needlessly copy rect over itself * [common] rects: cosmetics * [common] fix out by one error in `rectsIntersect` * [client] egl: reset damage on renderer restart * [client] egl: damage the full screen if the frame format changes * [doc] install: Add instructions to disable memballoon in libvirt * [doc] spelling: add "dejavu" to word list * [doc] build: update dependencies for post-B4 changes * [common] rects: fix rectIntersects * [host] app: zero the new client sub count * [client] x11: handle EINTR properly in epoll loop * [client] egl: fix undefined behaviour with zero size array * [doc] module: Add unloading note for manual install * [doc] Move DKMS above manual and mark recommended * [client] egl: fallback when EGL_RENDER_BUFFER fails * [client] egl: log glCheckFramebufferStatus error * [client] egl: blame NVIDIA if dmabuf fails on NVIDIA hardware * [client] egl: check for invalid desktop render dimensions * [client] egl/filters: bypass setup/prepare logic if disabled/inactive * [client] egl: handle filter setup returning false * [client] egl: skip downscale filter setup when not enabled * [doc] module: make cgroups configuration more visible * [host] windows: fix NSIS install directory on 64-bit builds * [client] egl: fix parentheses in IDX_AGO definition * [client] egl: fix egl_bufferAge naming * [client] egl: fix letterbox rendering * [client] Change default grabKeyboardOnFocus to false * [doc] build: Add new build deps to apt-get * [client] wayland: implement resizing for libdecor * [client] egl: add debug options to disable damage tracking * [client] cmake: correctly detect non-gawk awks * [client] stop the cursorThread if video feed is disabled * [client] opengl: fix getProcAddressGL2 naming * [client] ci: check for improper usage of GL functions * [client] add gl-check script to check GL function calls * [client] opengl: indirectly access non-OpenGL 1.3 functions * [client] opengl: add gl_dynprocs module * [client] opengl: use util_hasGLExt instead of custom logic * [client] egl: make the last eglDestroyImage call indirect * [client] egl: use eglCreateImage and eglDestroyImage indirectly * [client] egl_dynprocs: use official prototypes from system headers * [common] debug: fix incorrect use of #elif defined * [client] x11: load glXSwapIntervalEXT dynamically * [host] nvfbc: avoid waking up pointer thread for no reason * [common] open: detach xdg-open instead of waiting for it * [host] installer: build 64-bit NSIS installers * [client] spice: stop if pointer left during guest warp * [client] wayland: free presentation objects * [all] update submodules * [common] options: check for realloc failure * [client] config: window width & height are unsigned values * [client] app: remove dead code * [client] x11: reduce the scope of `deltats` * [client] x11: remove dead code * [client] wayland: fix possible memory leak * [doc] add upscale/downscale and related words to dictionary * [doc] install: fix missing new line warning * [client] ci: check --help spelling * [doc] lgspell: allow spell checking arbitrary text * [client] main: correctly handle EINTR from nanosleep * [doc] ci: run CI build with spell check * [doc] support building with spell check * [client] egl: make filters damage aware * [client] egl: remove useless RenderStep struct * [client] config: fix usage of "ie" * [common] ivshmem: use e.g. instead of incorrect ie for example * [client] config: fix spelling of synchronize * [docs] ci: build documentation on GitHub Actions * [doc] Correct a few spelling mistakes * [doc] install: Add Configuration Widget section * [doc] install: Remove scale toggle from key bindings * [doc] install: Add additional command line options * [common] cpuinfo: handle more than 64 threads on Windows * [host] windows: don't register exit event when none exists * [client] egl: support debug contexts on older EGL versions * [client] egl: remove warning disabling in ffx.c * [common] cpuinfo: trim trailing whitespace from model name on Windows * [common] cpuinfo: trim any trailing whitespace from CPU model * [client] egl: remove useless comment in filter_downscale.c * [common] windebug: handle FormatMessage failure * [host] app: print CPU information on startup * [client] main: print out CPU information on startup * [common] cpuinfo: implement for Windows * [common] cpuinfo: implement lgDebugCPU * [common] cpuinfo: implement for linux by parsing /proc/cpuinfo * [common] cpuinfo: add common library * [client] imgui: use consistent modal background colours * [client] imgui: run animations at consistent speeds * [client] egl: fix preset tooltip always showing * [client] egl: add separator after presets * [client] egl: correctly select the preset when saving over it * [client] egl: make preset UI more intuitive * [common] option: change option_dump to option_dump_preset * [client] egl: mark all preset-only options as such * [common] option: add preset-only options that don't show up in help * [client] egl: warn when attempting to save without preset selected * [client] egl: implement preset deletion * [client] egl: implement loading and saving of filter order * [client] egl: show preset errors as modal dialogs * [client] egl: implement preset loading/saving logic * [client] egl: implement options loading/saving for downscale * [client] egl: add loadState and saveState for filters * [client] egl: add UI for presets list * [common] stringlist: implement item removal * [common] vector: implement item removal * [common] option: implement the ability to set option values * [common] option: implement ability to dump config into ini * [common] appstrings: add blurb for xyene * [common] option: return NAN when float option doesn't exist * [client] egl: fix framebuffer leaking textures * [common] stringlist: use vector for storage * [common] vector: eliminate double allocation when possible * [common] vector: inline common operations * [client] egl: simplify filter moving logic with memmove * [common] ivshmem: switch to using vectors * [client] egl: make texture_dmabuf.c use vector * [common] vector: add indexed iteration modes * [common] vector: allow inplace construction with vector_push * [common] vector: implement a clear operation * [common] vector: allow vector_free to be used with NULL * [client] egl: implement nicer drag & drop re-ordering of filters * [client] egl: allow postprocessing filters to be reordered by dragging * [client] egl: switch postprocessing filters to use vectors * [common] vector: add new data structure * [doc] add documentation about libdecor * [host] pipewire: implement basic capture * [host] linux: add skeleton pipewire capture backend * [host] cmake: report capture backends enabled * [common] rects: fix typo in rectContains * [client] imgui: fix modifier key modification race * [client] spice: do not warp host cursor if guest cursor is not visible * [client] spice: don't display mouse before realignment finishes * Revert "[client] core: realign in the enter/focus handlers if possible" * [client] core: realign in the enter/focus handlers if possible * [client] core: wait for the host to process the cursor move * [client] x11: remove print from debugging * [all] bump the LGMP version to obtain access to data serial tracking * [client] x11: filter out virtual/grabbed XIEnterEvents * [client] egl: fix context creation on EGL 1.4 * [client] egl: dynamically import glBufferStorageEXT * [all] cmake: tell users to clone submodules when they haven't * [client] x11: implement keyboard modifiers * [client] x11: implement keyboard typing * [client] egl: look at 3x3 around the pixel instead of 4x4 * [client] egl: set gl_Position.z in cursor vertex shader * [client] kb: rename key code arrays from xfree86_* to linux_* * [common] windebug: pass FORMAT_MESSAGE_IGNORE_INSERTS to FormatMessage * [client] cmake: don't install cimgui.a into CMAKE_INSTALL_PREFIX * [all] cmake: provide an uninstall target * [host] remove all casts around malloc * [common] remove all casts around malloc * [client] remove all casts around malloc * [client] egl: pad areas of the desktop repainted to cover overlays * [host] use correct argument order for calloc * [client] use correct argument order for calloc * [common] use correct argument order for calloc * [client] egl: use standard-compliant way of EGL detection * [client] spice: avoid spice_key_modifiers when input is disabled * [client] use variable-relative sizeof where possible * [common] use variable-relative sizeof where possible * [host] use variable-relative sizeof where possible * [obs] display DMABUF option but disable it on older OBS * [client] egl: clamp sharpness settings in filters * [client] egl: add tooltip about Ctrl+Click on sharpness sliders * [common] option: use isspace from <ctype.h> * [client] wayland: support high DPI cursors when needed * [client] wayland: respect XCURSOR_THEME and XCURSOR_SIZE env variables * [client] wayland: set keyboard LED state when changed * [client] spice: add ability to set keyboard LED state in guest * [client] update PureSpice submodule * [client] egl: clamp downscale factor range * [client] ci: add libxkbcommon-dev dependency * [client] egl: make downscale filter use text input widget * [client] wayland: add keyboard typing handling with xkbcommon * [client] app: add ability to receive keyboard typing in overlays * [client] egl: add debug prints for renderStartup errors * [client] egl/downscale: implement filter switching * [client] egl: add linear downscale filter shader * [client] egl: implement lanczos filter shader * [client] all: remove needless initalization * [client] all: replace assert with DEBUG_ASSERT * [client] all: use DEBUG_UNREACHABLE instead of assert * [common] all: switch asserts to DEBUG_ASSERT * [host] capture: switch all asserts to DEBUG_ASSERT * [common] debug: add DEBUG_UNREACHABLE() macro * [common] debug: add DEBUG_ASSERT macro * [host] nvfbc: read nvfbc:diffRes option with the correct type * [common] array: add ALIGN_PAD macro for common logic * [host] app: remove useless ALIGN_DN and ALIGN_UP macros * [obs] implement dmabuf import support on OBS 27+ * [common] ivshmem: use correct page alignment logic * [client] main: use ARRAY_LENGTH macro * [host] windows/crash: do not report absolute paths on build machines * [host] dxgi: use FAILED macro instead of comparing against S_OK * [host] nvfbc: remove rectangles that are entirely contained in others * [common] rects: add rectsRejectContained function * [host] dxgi: correctly count moved rectangles * [client] egl: don't generate mipmaps in downscale filter * [client] overlay: remove the unused menu bar * [client] egl: add new downscale filter * [host] dxgi: include correct DXGI headers * [host] dxgi: use standard MinGW libd3d11.a * [client] rework the configuration overlay to allow for tabs * [client] egl: re-order CAS to before FSR for better results * [client] egl: fix buffer overflow in desktop_rects module * [client] egl: remove needless precision quantifiers * [client] egl/fsr: release `consts` when no longer needed * [client] egl/cas: release `consts` when no longer needed * [client] egl: precompute CAS filter constants on CPU * [client] egl: make FSR filter show inactive in config when disabled * [client] egl: precompute FSR filter constants on CPU * [client] egl: display FSR equivalent quality mode * [client] egl: update FSR filter state upon resolution change * Revert "[client] egl: make FSR detect an input size change and activate if valid" * [client] egl: make FSR detect an input size change and activate if valid * [host] dxgi: use CopySubresourceRegion when possible * [client] util: replace util_mergeOverlappingRects with common version * [common] rects: add rectsMergeOverlapping helper function * [client] wayland: fix deadlock when using wayland:warpSupport=no * [client] egl: cleanup texture filtering/post-processing * [client] egl: fixes to shader post-process pipeline * [client] egl: don't erase damage when invalidating whole window * [client] egl: implement C wrappers for FidelityFX constant computation * [client] egl: exempt shaders from copyright refresh script * [client] cmake: make MakeObject use relative paths * [client] egl: handle \r character when processing #includes * [common] crash: use DEBUG_WINERROR on windows * [client] core: dont warp the cursor if the overlay is active * [client] egl: use a texel based version of textureGather for FSR * [client] egl: don't define FSR_RCAS_F in ffx_fsr1_rcas.frag * [client] egl: cosmetics * [client] egl: rework post process filters and add AMD FXR * [client] egl: perform full copy for framebuffer textures after resize * [client] egl: allocate space for the initial texture dimensions * [client] egl: enable ffxCAS if disabled and the sharpness is changed * [client] egl: re-process the texture and invalidate if a setting changed * [client] egl: prefer gawk and mawk when building shaders * [client] egl: correct assign to gl_Position in basic.vert * [client] egl: correctly use flexible array members for BindData * [client] cmake: replace `-` with `_` too * [client] x11: don't hang when there are no message pending * [common] option: option_get_float should return a float * [client] app: make overlay mode more transparent * [client] egl: add ffx cas configuration options * [common] option: add support for float option types * [client] egl: allow ffxCAS sharpness configuration * [client] egl: cleanup pointer mess in egl_desktopInit * [client] egl: added missing vertex shader file * [client] egl: add ffx_cas post process filter * [client] egl: implement #include for shaders with awk * [client] egl: give pp filters the dimensions of all prior textures * [client] egl: don't allocate the texture ringbuffer unless needed * [client] egl: set a default scale for textures without filters * Revert "[client] egl: set a default scale for textures without filters" * [client] egl: set a default scale for textures without filters * [client] egl: provide the texture scale to the desktop shader * [client] egl: allow setting an output scale for a post-process shader * [client] egl: simplify desktop vertex shader * [client] egl: cycle through multiple textures for dmabuf * [host] windows: use DEBUG_WINERROR for MsgWaitForMultipleObjects * [host] windows: use DEBUG_WINERROR for CallNtPowerInformation * [host] windows: use DEBUG_WINERROR for exit event opening code * [client] x11: be less sensitive to frame skips * [client] x11: prevent present event loop underruns * [client] x11: switch to epoll for event wait loop * [client] egl: remove includes from testing * [client] egl: rework egl to accomodate post-processing filtering * [common] CountedBuffer: cosmetics * [common] ringbuffer: allow reverse iteration * [client] egl: refactor egl_texture_free to use project naming standards * [client] egl: remove texture->ops indirection * [client] opengl: refactor to use project naming standards * [client] egl: refactor to use project naming standard * [client] main: destroy and finish fontconfig usage * [client] interface: refactor to use camlCase function names * [client] egl: implement free for texture frambuffer * [client] interface: switch to using UPCAST for the renderer's data * [client] interface: rename LG_Renderer to LG_RendererOps * [client] interface: cleanup the renderer interface * [client] egl: attempt DMABUF import and fallback if it fails * [client] egl: revert glsync changes * [client] egl: texture_framebuffer should call the stream init * [egl] texture: use more appropriate vairable names (parent & this) * [client] egl: `sync` is now an atomic, access it as such * [client] egl: eliminate GLsync object leaks * [client] main: don't call stopWaitFrame if jitRender is not enabled * [client] x11: invalidate the full window after timeout from expose * [client] egl: do a full redraw if nightvision is toggled * [client] egl/imgui: use imgui for night vision gain configuration * [client] egl: implement partial copies for framebuffer textures * [common] rects: implement routine to copy rectangles from framebuffer * [common] rects: refactor rect buffer copy code to common module * [common] appstrings: add blurb for quantum * [client] egl: correct letterbox area clear attempt #3 - sigh * [client] x11: prevent skew from enter/leave/focus and fullscreen events * [client] egl: correct letterbox area clear attempt #2 :) * [client] x11: don't allow window manager events to skew cal timing * [client] egl: properly clear the letterbox areas * [client] x11: improve presentation sync calibration * [client] main: don't include the swap into the render timings * [client] main: increase render graph max scale to 10ms * [host] dxgi: copy only damaged regions to IVSHMEM * [client] egl/imgui: use imgui for scaling algorithm selection * [client] egl: refactor config dialog into main egl module * [client] overlay: move separator above donation prompt * [host] nvfbc: round pitch to multiple of 128 for dmabuf import * [client] overlay/config: switch to use new URL widget when possible * [client] imgui: implement new widget for displaying URLs * [common] open: implement opening URLs in browser * [host] windows: implement KVMFR_FEATURE_SETCURSORPOS * [client] implement support for KVMFR_FEATURE_SETCURSORPOS * [common] add new KVMFR structs and fields for feature support * [all] bump LGMP version again * [client] don't terminate after successful upgrade of LGMP * [client] allow the user to upgrade if the LGMP version doesn't match * [all] update LGMP to obtain access to new client messaging feature * [doc] index: Modify Level1Techs URL to use a redirect * [client] egl: pad buffer damage by 1px when rendering desktop * [host] nvfbc: make diff map size configurable * [client] x11: prevent possible calibration underflow * [client] main: make core overlays register before everything else * [client] wayland: fix build with libdecor after invalidateWindow change * [client] imgui: ensure the pointer shape is correct * [client] app: allow selective full invalidation * [client] overlay: move keybinds and config into the overlays * [client] main: fix incorrectly hiding the cursor dot in captureOnly mode * [client] overlay: remember and restore the grab and pointer state * [client] core: never allow warp when the overlay is active * [client] overlay: don't use the internal function directly for config * [client] egl: use a ui switch for damage display instead of a keybind * [client] overlay: allow registration of runtime configuration options * [host] windows: make copyright string in resource use © * [all] copyright: use unicode copyright sign © * [common] appstrings: make script refresh copyright and license * [client] imgui: move cursor change to after rendering overlays * [client] main: rename frameTimings to uploadTimings * [client] main: add graph for time spent rendering * [client] imgui: another missed file * [client] imgui: added missed files from the last commit * [client] overlay: add new configuration overlay [wip] * [client] wayland: fix failure to build * [client] ds: waitFrame now returns a bool to force rendering if needed * [client] x11: move sleep and calibration code outside of the event loop * [client] x11: cosmetics * [client] x11: don't setup XPresent if jitRender is not enabled * [client] ds: tell the display server if jitRender is requested * [client] config: use DEBUG_WARN, not fprintf for output * [client] config: ensure mouseRedraw is on if jitRender is in use * [client] egl: always render the black bar areas * [client] egl: fix out by one error with letterbox rendering * [client] egl: remove texture copy in DMABUF path * [client] egl: warn when EGL_EXT_buffer_age is not supported * [client] egl: use buffer age extension to render only damaged parts * [client] egl: convert desktop to use desktop_rects * [client] egl: refactor damage mesh generation into desktop_rects * [client] egl: clean up splash background shader * [client] wayland: document wlroots viewport handling workaround * [host] nvfbc: disable pointerThread when unused * [client] x11: added code to calibrate a delay for presentation * [client] x11: provide an empty rect region to XPresentPixmap * [client] egl: assert the update provdided is a dmabuf * [client] egl: re-implement DMABUF (untested) * [doc] install: Add Overlay Mode section * [doc] install: Add $XDG_CONFIG_HOME/looking-glass/client.ini * [doc] install: Add win:jitRender command line option * [client] x11: remove junk code from evaluation * [client] egl: use new EGL damage count semantics * [commit] wayland: invalidate window on scale changes * [client] egl: there should only ever be a single sync object * [doc] add libxpresent-dev as a new build dep for the client * [github] add libxpresent-dev as a new build dep * [client] x11: make use of the x11 present extension for jitRender * [client] egl: do not set `ops`, this is done in `texture.c` * [client] egl: replace monolithic EGLTexture with modular version * [client] overlay: add new `needs_render` for realtime overlays * [client] egl: use a lock for desktop damage to eliminate all races * [client] wayland: implement stopWaitFrame * [client] ds: add stopWaitFrame to terminate waitFrame early * [client] main: allow 'catchup' when using jitRender * [client] main: use skipFrame and signal frameEvent * [client] wayland: make waitFrame work when not rendering * [client] ds: add skipFrame method to interface * [client] main: make use of new `needs_render` call * [client] renderers: add new needs_render method to the interface * [client] main: alerts and overlay toggles should invalidate the window * [client] main: only render if there is actually something to render * [client] ds: change signalNextFrame to waitFrame * [client] config: disable JIT rendering by default * [client] egl: fix cursor handling when invalidating * [common] event: lgResetEvent should return the last state of the event * [common] events/linux: fix failure to call pthread_cond_broadcast * [client] wayland: use zxdg_output_manager_v1 version 3 if possible * [client] wayland: make it possible to disable fractional scaling * [client] wayland: improve fractional scale handling * [client] config: enable JIT rendering by default * [client] main: implement just-in-time render mode * [client] egl: use queue of damages * [doc] install: Update overlay mode keybinding * [client] imgui: don't free the IniFilename until imgui destruction * [client] imgui: put imgui.ini in $XDG_CONFIG_DIR/looking-glass * [client] config: load config file based on new lgConfigDir() * [common] paths: add library to manage platform-specific paths * [client] app: allow overlay exit with `KEY_ESC` * [client] move imgui input state reset to it's own core function * [client] overlay: disable the imgui demo window * [client] overlay/help: do not always show when in overlay mode * [client] overlay/graphs: allow the window position and size to be saved * [client] overlay/fps: allow the window posisiton to be saved * [client] overlay/help: use the `interactive` argument * [client] overlay: let the overlay know if it's in interactive mode * [client] imgui: use signalNextFrame if possible * [client] wayland: implement signalNextFrame with frame callbacks * [client] ds: add optional method signalNextFrame(LGEvent) * [git] add libxcursor-dev to the git workflow * [client] x11: implement cursor support for the imgui overlay * [client] app: prevent buttons/keys from being held when focus is lost * [client] main: bump the minimum fps to 60fps when showing the overlay * [client] x11: call app_handleWheelMotion for imgui scroll interaction * [client] imgui: respect WantCaptureKeyboard * [client] app: update imgui key release when guest input is disabled * [client] overlay: allow the fps and graph windows to be moved * [client] x11: Add event handling for ungrabed mouse press/release * [client] config: optionally load config from XDG_CONFIG_HOME * [client] config: do not attempt to load non-files as config * [client] client: release escape key on focus loss * [host] nvfbc: log error codes for various errors * [common] option: make options case insensitive * [client] config: print error when app:configFile is not a valid file * [client] main: prevent the user from launching looking glass as setuid * [client] wayland: pass mouse wheel motion events to imgui * [client] imgui: implement mouse wheel motion support * [client] wayland: reject horizontal scroll events * [client] imgui: initialize keymap * [client] config: automatically update embedded copyright string * [client] imgui: remove no longer used overlay_utils.cpp * [client] imgui: improve method for high DPI * [client] imgui: ask display server to display cursors * [client] wayland: implement support for other cursors * [client] ds: change showPointer to setPointer for more cursors * [client] imgui: improved overlay input handling * [doc] install: Update client keybindings and command line options * [client] imgui: darken background when rendering overlays * [client] egl: log when EGL_EXT_image_dma_buf_import is unavailable * [client] imgui: implement keyboard input forwarding and capture * [client] imgui: add mode to forward mouse input to imgui * [client] egl: make functions that do not need linking static * [client] imgui: make graph y-axis configurable * [common] framebuffer: fix copy when source and dest pitch differs * [common] ivshmem: use consistent device numbering on Windows * [common] time: fully implement all functionality for windows * [client] egl: add graph tracking time taken to import frame * [host] app: add throttleFPS option * [client] imgui: report failed font atlas building * [host/common] windows: provide `delayExecution` via `nsleep` * [client] egl: keep x/y coordinates of cursor rectangle non-negative * [client] egl: generate correct cursor damage with cursor rotation * [host] app: when running in sync mode send frame repeats as needed * [client] egl: rotate damage rectangles according to client side rotation * [client] egl: make damage overlay support rendering rotated rectangles * [client] overlay: cosmetic changes to the overlay display * [client] wayland: invalidate window on configure * [client] x11: call `app_invalidateWindow` on expose * [client] all: make it possible to signal full window invalidation * [client] don't skip the first frame if we do not yet have a frame * [spice] bump PureSpice version * [host] nvfbc: clamp damage rectangles to screen size * [client] main: skip duplicate frames * [common] kvmfr: add a new `frameSerial` field to the KVMFRFrame struct * [all] cmake: fix OptimizeForNative * [host] windows: use CMAKE_DLLTOOL if available * [all] use cmake FindPkgConfig IMPORTED_TARGETs * [client] removed unused GMP dependency * [all] include OPTIMIZE_FOR_NATIVE in feature summary * [all] make OPTIMIZE_FOR_NATIVE a tristate option * [all] cmake: use -march=x86-64-v2 when it becomes available * [client] fonts: remove font rendering machinery * [client] opengl: remove font management * [client] egl: remove font management * [client] renderers: remove alert handling * [client] imgui: converted alerts to use imgui * [client] overlay/help: switch to using ImGui's table facility * [client] renderer: remove on_help from renderer interface * [client] imgui: convert help overlay to use imgui * [client] imgui: make UI font and size configurable * [client] imgui: use improved high DPI rendering * [client] imgui: support high DPI by scaling framebuffer * [client] overlay: use utility function to get ImGui rectangle * [client] overlay: remove space checking * [client] imgui: track last rectangles for overlays * [client] egl: correctly handle mixing imgui and non-imgui overlays * [host] windows: do not complain about failed timer destruction at exit * [client] ci: run all build combinations to completion * [client] wayland: use new libdecor pkgconfig package name * [client] renderers: treat -1 as full damage and 0 as no overlay * [host] windows: use WM_CLOSE to signal window destruction * [client] overlay: call igEnd before return * [client] overlay: increment `totalRects` * [client] overlay: rework the interface to avoid possible race conditions * [client] overlay: properly free the graphs before ll free * [client] egl: transform overlay damage coordinates * [client] egl: avoid overflowing damage buffer * [client] app: implement new overlay rendering framework * [client] overlay: cosmetic, fix typo * [client] overlay: `windowRects` is not an array of pointers * [client] overlay: added new interface for overlay windows using ImGui * [client] wayland: do not leak wp_presentation_feedback objects * [client] ci: test libdecor build as part of matrix * [client] egl: free desktop damage after rendering * [client] ci: remove SDL dependencies and -DENABLE_SDL=ON * [client] wayland: dispatch events through libdecor when using it * [client] ci: fix clang build * [all] copyright: refresh copyright notice for .nsi and .rc files * [egl] damage: only update the damage vbo if there was a new frame * [client] main: let the renderer know if it's rendering a whole new frame * [client] main: sync to the ups if the ups exceeds minFrameTime * Revert "[client] main: increase the ups/fps update rate to once per 100ms" * [client] main: remove/fix faulty upsTime code * [host] windows: trick MinGW into not using memcpy from ntdll * [host] windows: use system thread pool to wait for exit event * [host] windows: log MsgWaitForMultipleObjects errors * [client] opengl: don't include <GL/glx.h> * [host] windows: add version resource * [host] windows: fix graceful exit * [host] service: respond to exit request while sleeping * [host] windows/delay: cast to LONGLONG instead of int * [client] main: improve frame rate sync lock with the guest * [client] main: increase the ups/fps update rate to once per 100ms * [client] main: use the monotonic clock to calculate the ups/fps * [client] wayland: do not crash when presentation time is unavailable * [common] windows: declare WINVER and _WIN32_WINNT * [host] windows: directly invoke ChangeWindowMessageFilterEx * [host] windows: fix resource compilation dependencies * [host] windows: avoid compiling .rc file twice * [common] windebug: remove custom-rolled Windows 8 detector * [host] dxgi: use SDK versionhelpers.h to test for Windows version * [host] windows: declare Windows 10 support in manifest * [host] windows: declare high DPI support in manifest * [host] cmake: use -march=x86-64-v2 when it becomes available * [host] windows: directly link D3DKMTSetProcessSchedulingPriorityClass * [host] windows: correctly declare WINVER and _WIN32_WINNT * [host] delay: directly link against ntdll.dll * [host] service: fix adjustPriv return value * [client] egl: improve cursor damage logic * [host] service: pass CREATE_UNICODE_ENVIRONMENT unconditionally * [host] service: use SYSTEM token attached to the current process * [host] windows: use event to gracefully signal exit * [host] link resource directly to exe * Revert "Revert "[host] avoid manual windres command"" * [client] egl: use glGetError and codes for errors in gl* functions * [client] ds: refactor common EGL swap with damage logic * [client] ci: do not install libglew-dev * [client] egl: EGL_KHR_swap_buffers_with_damage returns EGLBoolean * [common] linux: review and fix event logic, events should not be counted * [client] app: correct FPS to use an actual per second value * [common] timer: fix timespec parameters when interval >= 1000 * [client] app: give some transparency to the new FPS window * [client] egl: properly use OpenGL ES * [client] all: use imgui for FPS/UPS display * [common] ringbuffer: add pre value overwrite callback * [client] imgui: use ES 3.0 and remove glew dependency * [client] egl: revert "only copy damaged areas when using dmabuf" * [client] egl: only copy damaged areas when using dmabuf * [client] wayland: display swap to photon latency graph * [client] wayland: measure presentation time * [client] imgui: use struct for graph metrics instead of array * [client] imgui: support registering new graphs * [client] egl: use debug context and make it configurable * [client] egl: upload damage vertices with glBufferSubData * [client] egl: implement error reporting callback * [client] egl: use vertex array objects in model.c * [client] egl: correctly clean up vertex buffer objects * [common] dpi: remove no longer used library * [common] kvmfr: remove mouseScalingPercent which is no longer used * [host] capture: stop sending DPI information * [client] spice: remove dpi which is no longer used * [client] spice: update to use the new epoll version of PureSpice * [client] egl: implement frame damage display * [client] util: add function for merging overlapping rectangles * [common]: move array length into a common helper * [host] nvfbc: copy damaged areas only * [common] framebuffer: allow custom framebuffer write implementations * [host] capture: pass frameIndex to capture backends * [host] dxgi: compute damage rectangles from moved rectangles * [client] egl: do not use damage when overlays are visible * [host] nvfbc: better algorithm for merging adjacent regions * [host] nvfbc: merge adjacent changed regions * [client] egl: use desktop frame damage information * [host] nvfbc: populate damage rectangles * [host] dxgi: populate damage rectangles * [host] capture: add damage rectangles to capture interface * [common] kvmfr: add damage rectangles to the protocol * [doc] build: remove mentions of SDL * [client] ds: remove SDL display server * [client] egl: use glCopyTexSubImage2D to copy when using DMA * [client] ci: fix clang build by using clang++ * [client] cimgui: build as static library * [git] update workflow to include new libglew-dev dependency * [client] app: add keybind to toggle frame timing information display * [client] main: don't trigger redraws if the video feed is disabled * [client] x11: make use of eglSwapBuffersWithDamage if it's available * [client] main: copy & release KVMFR messages sooner * [client] imgui: calculate min/max/avg/fps and add them to the plots * [client] main: dont push an invalid value into the timings buffers * [common] ringbuffer: add forEach iterator * [client] app: initial imgui frame timings * [common] ringbuffer: add getLength method * [client] app: collect render and frame timing information * [common] added new ringbuffer helper for metrics collection * [client] app: init/destroy imgui context on run/shutdown * [client] imgui: added imgui to the client and OpenGL/EGL renderers * [repos] added `cimgui` @ version 1.82 ------------------------------------------------------------------- Fri Jul 30 12:02:30 UTC 2021 - pousaduarte@gmail.com - Update to version 20210717~B4: * ------------------------------------------------------------------- Fri Jul 30 11:29:31 UTC 2021 - pousaduarte@gmail.com - Update to version 20210729~gitB4: * [client] imgui: darken background when rendering overlays * [client] egl: log when EGL_EXT_image_dma_buf_import is unavailable * [client] imgui: implement keyboard input forwarding and capture * [client] imgui: add mode to forward mouse input to imgui * [client] egl: make functions that do not need linking static * [client] imgui: make graph y-axis configurable * [common] framebuffer: fix copy when source and dest pitch differs * [common] ivshmem: use consistent device numbering on Windows * [common] time: fully implement all functionality for windows * [client] egl: add graph tracking time taken to import frame * [host] app: add throttleFPS option * [client] imgui: report failed font atlas building * [host/common] windows: provide `delayExecution` via `nsleep` * [client] egl: keep x/y coordinates of cursor rectangle non-negative * [client] egl: generate correct cursor damage with cursor rotation * [host] app: when running in sync mode send frame repeats as needed * [client] egl: rotate damage rectangles according to client side rotation * [client] egl: make damage overlay support rendering rotated rectangles * [client] overlay: cosmetic changes to the overlay display * [client] wayland: invalidate window on configure * [client] x11: call `app_invalidateWindow` on expose * [client] all: make it possible to signal full window invalidation * [client] don't skip the first frame if we do not yet have a frame * [spice] bump PureSpice version * [host] nvfbc: clamp damage rectangles to screen size * [client] main: skip duplicate frames * [common] kvmfr: add a new `frameSerial` field to the KVMFRFrame struct * [all] cmake: fix OptimizeForNative * [host] windows: use CMAKE_DLLTOOL if available * [all] use cmake FindPkgConfig IMPORTED_TARGETs * [client] removed unused GMP dependency * [all] include OPTIMIZE_FOR_NATIVE in feature summary * [all] make OPTIMIZE_FOR_NATIVE a tristate option * [all] cmake: use -march=x86-64-v2 when it becomes available * [client] fonts: remove font rendering machinery * [client] opengl: remove font management * [client] egl: remove font management * [client] renderers: remove alert handling * [client] imgui: converted alerts to use imgui * [client] overlay/help: switch to using ImGui's table facility * [client] renderer: remove on_help from renderer interface * [client] imgui: convert help overlay to use imgui * [client] imgui: make UI font and size configurable * [client] imgui: use improved high DPI rendering * [client] imgui: support high DPI by scaling framebuffer * [client] overlay: use utility function to get ImGui rectangle * [client] overlay: remove space checking * [client] imgui: track last rectangles for overlays * [client] egl: correctly handle mixing imgui and non-imgui overlays * [host] windows: do not complain about failed timer destruction at exit * [client] ci: run all build combinations to completion * [client] wayland: use new libdecor pkgconfig package name * [client] renderers: treat -1 as full damage and 0 as no overlay * [host] windows: use WM_CLOSE to signal window destruction * [client] overlay: call igEnd before return * [client] overlay: increment `totalRects` * [client] overlay: rework the interface to avoid possible race conditions * [client] overlay: properly free the graphs before ll free * [client] egl: transform overlay damage coordinates * [client] egl: avoid overflowing damage buffer * [client] app: implement new overlay rendering framework * [client] overlay: cosmetic, fix typo * [client] overlay: `windowRects` is not an array of pointers * [client] overlay: added new interface for overlay windows using ImGui * [client] wayland: do not leak wp_presentation_feedback objects * [client] ci: test libdecor build as part of matrix * [client] egl: free desktop damage after rendering * [client] ci: remove SDL dependencies and -DENABLE_SDL=ON * [client] wayland: dispatch events through libdecor when using it * [client] ci: fix clang build * [all] copyright: refresh copyright notice for .nsi and .rc files * [egl] damage: only update the damage vbo if there was a new frame * [client] main: let the renderer know if it's rendering a whole new frame * [client] main: sync to the ups if the ups exceeds minFrameTime * Revert "[client] main: increase the ups/fps update rate to once per 100ms" * [client] main: remove/fix faulty upsTime code * [host] windows: trick MinGW into not using memcpy from ntdll * [host] windows: use system thread pool to wait for exit event * [host] windows: log MsgWaitForMultipleObjects errors * [client] opengl: don't include <GL/glx.h> * [host] windows: add version resource * [host] windows: fix graceful exit * [host] service: respond to exit request while sleeping * [host] windows/delay: cast to LONGLONG instead of int * [client] main: improve frame rate sync lock with the guest * [client] main: increase the ups/fps update rate to once per 100ms * [client] main: use the monotonic clock to calculate the ups/fps * [client] wayland: do not crash when presentation time is unavailable * [common] windows: declare WINVER and _WIN32_WINNT * [host] windows: directly invoke ChangeWindowMessageFilterEx * [host] windows: fix resource compilation dependencies * [host] windows: avoid compiling .rc file twice * [common] windebug: remove custom-rolled Windows 8 detector * [host] dxgi: use SDK versionhelpers.h to test for Windows version * [host] windows: declare Windows 10 support in manifest * [host] windows: declare high DPI support in manifest * [host] cmake: use -march=x86-64-v2 when it becomes available * [host] windows: directly link D3DKMTSetProcessSchedulingPriorityClass * [host] windows: correctly declare WINVER and _WIN32_WINNT * [host] delay: directly link against ntdll.dll * [host] service: fix adjustPriv return value * [client] egl: improve cursor damage logic * [host] service: pass CREATE_UNICODE_ENVIRONMENT unconditionally * [host] service: use SYSTEM token attached to the current process * [host] windows: use event to gracefully signal exit * [host] link resource directly to exe * Revert "Revert "[host] avoid manual windres command"" * [client] egl: use glGetError and codes for errors in gl* functions * [client] ds: refactor common EGL swap with damage logic * [client] ci: do not install libglew-dev * [client] egl: EGL_KHR_swap_buffers_with_damage returns EGLBoolean * [common] linux: review and fix event logic, events should not be counted * [client] app: correct FPS to use an actual per second value * [common] timer: fix timespec parameters when interval >= 1000 * [client] app: give some transparency to the new FPS window * [client] egl: properly use OpenGL ES * [client] all: use imgui for FPS/UPS display * [common] ringbuffer: add pre value overwrite callback * [client] imgui: use ES 3.0 and remove glew dependency * [client] egl: revert "only copy damaged areas when using dmabuf" * [client] egl: only copy damaged areas when using dmabuf * [client] wayland: display swap to photon latency graph * [client] wayland: measure presentation time * [client] imgui: use struct for graph metrics instead of array * [client] imgui: support registering new graphs * [client] egl: use debug context and make it configurable * [client] egl: upload damage vertices with glBufferSubData * [client] egl: implement error reporting callback * [client] egl: use vertex array objects in model.c * [client] egl: correctly clean up vertex buffer objects * [common] dpi: remove no longer used library * [common] kvmfr: remove mouseScalingPercent which is no longer used * [host] capture: stop sending DPI information * [client] spice: remove dpi which is no longer used * [client] spice: update to use the new epoll version of PureSpice * [client] egl: implement frame damage display * [client] util: add function for merging overlapping rectangles * [common]: move array length into a common helper * [host] nvfbc: copy damaged areas only * [common] framebuffer: allow custom framebuffer write implementations * [host] capture: pass frameIndex to capture backends * [host] dxgi: compute damage rectangles from moved rectangles * [client] egl: do not use damage when overlays are visible * [host] nvfbc: better algorithm for merging adjacent regions * [host] nvfbc: merge adjacent changed regions * [client] egl: use desktop frame damage information * [host] nvfbc: populate damage rectangles * [host] dxgi: populate damage rectangles * [host] capture: add damage rectangles to capture interface * [common] kvmfr: add damage rectangles to the protocol * [doc] build: remove mentions of SDL * [client] ds: remove SDL display server * [client] egl: use glCopyTexSubImage2D to copy when using DMA * [client] ci: fix clang build by using clang++ * [client] cimgui: build as static library * [git] update workflow to include new libglew-dev dependency * [client] app: add keybind to toggle frame timing information display * [client] main: don't trigger redraws if the video feed is disabled * [client] x11: make use of eglSwapBuffersWithDamage if it's available * [client] main: copy & release KVMFR messages sooner * [client] imgui: calculate min/max/avg/fps and add them to the plots * [client] main: dont push an invalid value into the timings buffers * [common] ringbuffer: add forEach iterator * [client] app: initial imgui frame timings * [common] ringbuffer: add getLength method * [client] app: collect render and frame timing information * [common] added new ringbuffer helper for metrics collection * [client] app: init/destroy imgui context on run/shutdown * [client] imgui: added imgui to the client and OpenGL/EGL renderers * [repos] added `cimgui` @ version 1.82 * [doc] faq: Correct misinformed question about mouse warp issue * [host] windows: fix build on Linux due to case sensitive filenames * [host] windows: fix delayExecution order of magnitude bug * [host] windows: remove accidental addition of some junk * [host] windows: add `delayExecution` function for more accurate sleeps * [host] windows: fix system timer resolution message units * [host] windows: do not callback from the mouse hook context * [doc] faq: Partial revert of fa871e9 to include registry hack Expected to be fixed in B5 * [doc] build: Revise client build dependencies for B4 * [client] wayland: fix typo in warp usage * [obs] call `debug_init()` to initialize debug print * [host] dxgi: print out the adapter details earlier * [host] dxgi: print out the output device name to aid with support * [host] app: fix infinate loop introduced in the last commit * [host] app: wait for space in the frame queue * [host] nvfbc: remove the `frameEvent` event and associated code * [host] app: allow the capture interface to select async or sync mode * [host] nvfbc: do not crash when protected content is playing * [host] app: allocate LGMP memory for KVMFRCursor updates without shapes * [host] nvfbc: optimize change detection loop * [host] dxgi: correctly mention AcquireNextFrame in help text * [doc] faq: B4-rc2 touchups * [doc] module: dkms example has explicit "." This works in dash, so should be portable to most shells. Will hopefully help users not misinterpret the period as a mistake. * [host] windows: make `D3DKMTSetProcessSchedulingPriorityClass` global * [host] windows/nvfbc/common: strip out broken "enhanced" event logic * [common] windows: update event fast path to use atomics * [client] config: default `minimizeOnFocusLoss` to off * [common] debug: output to `stdout` and reset the the color at the end * [doc] faq: Correct log file tray operation * [doc] index: Nuke trello and add ethereum address * [common] debug: remove missed `debug_print` forward * [common] debug: add color support to debug messages * [host] app: always send the cursor position to the client * [doc] faq/install: Move Clipboard Synch instructions to Installation * [doc] faq: Touchup * [doc] module: Touchups * [doc] obs: Touchup * [doc] install/troubleshooting: AppArmor instructions already in Installation * [doc] troubleshooting: B4 touchup * [doc] host: Touchups and sentence flow corrections * [doc] install: Touch ups and tweaks * [client] Fix narrowing issues with win:shrinkOnUpscale param * [all] cmake: check for `VERSION` file before using git describe * [client] egl: fix race on resolution change * [host] app: fix inverted cursor shape logic * Revert "[host] avoid manual windres command" * [host] app: fix issue with wrong cursor shape being sent for new clients * [host] avoid manual windres command * [host] install cmake target * [client] install cmake target * [client] opengl: do not render a sync pending texture * [client] x11/opengl: enable double buffering for OpenGL * [client] opengl: cosmetics * [client] opengl: no need to re-bind the already bound texture * [client] opengl: do not prematurely delete overlay textures * [client] opengl: deconfigure is idempotent * [common] runningavg: avoid integer overflows * [client] wayland/clipboard: prefer text/plain over text/html * [client] wayland: fix full screen toggle in capture mode regression * [client] x11: create _NET_WM_BYPASS_COMPOSITOR if it doesn't exist * [host] linux: implement new truncated frame support * [client] main: display error when the frame has been truncated * [host] kvmfr: allow the frame size to exceed the available memory * [client] wayland: lock confine-related code to avoid race * [client] egl: fix dmabuf support * [client] egl: `tex` is now an array, so check it properly for assignment * [client] egl: fix incorrect texture usage * [common] framebuffer: make use of framebuffer_wait * [common] framebuffer: add additional profiling support * [common] framebuffer: simplify the `remaining` calculation * [common] framebuffer: improve client framebuffer read performance * [common] option: handle ini lines without trailing newline * [common] option: prevent ascii filter from eating newlines * [common] option: ignore non-typeable ascii characters * [client] x11: use correct spelling of _NET_WM_BYPASS_COMPOSITOR * [common] runningavg: refresh copyright notice * [all] check if pull request author is in AUTHORS * [all] add AUTHORS file * [host] dxgi: sleep until it's close to time to map * [client] wayland: offer all supported clipboard formats * [all] normalize copyright on all source files * [all] add script to refresh copyright * [host] NvFBC/DXGI: make DXGI the default instead of the fallback * [host] cmake: force -O3 for release with debug builds * [host] dxgi: increase maxTextures default to 4 * [host] linux: add missing library to fix compilation * [host] app: add os_showMessage for Linux * [host] app: calculate and report the required IVSHMEM size * [client] wayland: remove sync transfer for VM->host copies * [client] spice: update PureSpice to fix #556 * [client] app: cleanup clipboard option logic * [obs] install into plugin dir * [obs] fix oob cursor writes * [obs] fix cursor blending * [obs] fix monochrome cursor crop * [client] wayland: prefer PNG over other image types * [client] wayland: update to support new spice clipboard type list * [client] x11: update to support new spice clipboard type list * [client] spice: update to support sending clipboard type list * [client] x11: implement `win:noResize` * [client] app: only minimize if lost focus when in full screen mode * [client] spice: update PureSpice submodule to fix agent message issues * [client] core: fix use of unintalized variable * [client] spice: update PureSpice again for more clipboard fixes * [client] spice: update PureSpice to fix large buffer paste bug * [client] spice: update PureSpice to fix clipboard stack overflow bug * [client] x11: fix BadAtom when pasting large buffers * [client] x11: cosmetics * [doc] README.md: Correct docs link * [doc] Rerganize content into install and build pages * [doc] troubleshooting: Move link to new website * [doc] README: Emphasis fix * [doc] index: IRC moved * [all] README: Remove most info already in docs/ * [doc] index: Correct spelling and add irc, trello, and donate info * [doc] module: Change AppArmor path for libvirt to include local/ * [doc] host: Better formatting for Windows on Windows * [doc] host: Reformat build instructions for all platforms * [all] README: Comment out inactive docs url * [doc] install: Add warning about downloading with git * [doc] install: Rename Running the Client to Usage Also move relevant sentence into Usage * [doc] module: Add instructions for systemd-modules-load.d * [all] README.md: Update Documentation section with /doc * [doc] host: Imported from host/README.md Placed at bottom of Technical FAQ to hide it host/README.md removed * [module] README.md: Deleted file absorbed into /doc * [doc] module: Import from module/README.md * [client] doc: Remove README.md as it has been absorbed into doc/install.rst * [doc] install: Add keybinds and full cli options from client/README.md * [doc] install: Add Keybindings from client/README.md * [doc] install: Correct command line examples * [doc] install: Add Command Line Options section May in the future include up to date client options from the client * [doc] conf: Enable fixed sidebar * [doc] install: Add 'local' to AppArmor abstraction path This prevents system upgrades from overriding the addition * [doc] obs: Fix code block for installing package * [doc] faq: Remove virt-manager instructions * [doc] faq: Grammar and page flow improvements * [doc] install: Grammar, formatting, and page flow * [doc] credits: Add real name to quantum * [doc] credits: Add real name to xyene * [doc] index: Removed "Contents:" * [doc] credits: Add credits * [doc] conf: Remove text under logo * [doc] install: Update Determining Memory formula * [doc] config: Add LG logo and favicon * [doc] install: Remove unofficial chocolatey package tip * [doc] troubleshooting: Wayland supports clipboard and remove reference to ubuntu * [doc] install: Remove 7-zip and add period. * [doc] install: Convert bootleg notes into true notes * [doc] conf: Correct spelling of "xyene" * [doc] faq: FAQt checking and grammar changes No I couldn't resist the pun no matter how much I tried * [doc] conf: Add master_doc to explicitly use index.rst This is for compatibility with older sphinx versions * [doc] index: Add new welcome message with release version * [doc] Import from wiki Imported Installation, FAQ, Troubleshooting, OBS, and Technical FAQ pages from wiki. Edits done to content as this is no longer a wiki, but versioned in-repo documentation * [doc] Add _build directory to new .gitignore file * [doc] Initialize Sphinx in /doc * [obs] fix oob cursor writes * [client] wayland: avoid protocol error when warping in capture mode * [client] wayland: use util_hasGLExt for swapping buffers with damage * [client] egl: use eglSwapBuffersWithDamageKHR for cursor-only updates * [client] egl: use new util_hasGLExt helper to check extensions * [client] wayland: implement minimize operation * [common] option: Reformat help and support rST tables Corners of table have '+' added, and adds new command line flag --rst-help, which adds some extra formatting to the make it an rST compliant table for the in-line docs. * [client] x11/sdl/wayland: implement new `minimize` (stub for wayland) * [client] ds: add new `minimize` function to the ds interface * [client] core: clamp the local position to the dstRect correctly * [client] main: fix failure to obey win:autoResize * [client] ds: avoid util_cursorToInt when warping pointer * [client] wayland: use locked pointer to implement capture mode * [client] ds: separate grab and capture logic * [client] x11: remove pointer motion event mask * [client] egl: show error for glMapBufferRange instead of glBindbuffer * [client] wayland: synchronize host cursor position with guest * [client] ds: detect when the cursor exits into an overlapping window * [client] util: move and rename `clamp` to `util_clamp` * [client] ui: add input:helpMenuDelay option * [client] win: add new option win:shrinkOnUpscale * [client] config: update description for DMA as VM-Host is now supported * [client] spice: put new option into the correct category * [client] spice: new option `spice:showCursorDot` added * [client] x11: cosmetics * [client] x11: process clipboard events early * [client] x11: fix failure to paste clipboard into the guest * [host] nvfbc: fix null dereference in mouse hook handler * [host] service: compare SIDs directly without string conversion * [host] service: disable handle inheritance when spawning host * [host] service: disable privileges as soon as they are not needed * [client] egl: do not leak fence when using DMABUF * [client] wayland: do not leak cursor wl_buffer and wl_surface * [client] libdecor: fix gcc compile warnings-turned-errors * [client] spice: update the PureSpice submodule * [client] x11: fallback to a utility window if motif atom is missing * [client] x11: Find and use the correct valuators for mouse axes * [client] x11: set the window center via WM_SIZE_HINTS * [client] x11: implement center, borderless and maximized parameters * [client] x11: fix segfault caused by clipboard processing on shutdown * [client] x11: split out atoms into a seperate structure * [client] x11: split out clipboard code for maintainabillity * [client] x11: _NET_WM_* hints are ATOMS not CARDINAL * [host] windows: re-implement open log safely * [host] service: introduce fatal errors for ivshmem failures * [host] service: retry a few times when host fails to restart * [host] cmake: link correctly against libxcb-xfixes.so * [host] ci: install libxcb-xfixes0-dev package * [client] ci: correctly set CMAKE_BUILD_TYPE * [client] wayland: make input handlers aware of multiple surfaces * [client] wayland: implement libdecor pseudo-shell backend * [client] cmake: support building with libdecor * [client] wayland: split xdg-shell handling into a module * [client] wayland: use consistent naming in poll module * [common] cmake: correctly link static libbfd.a * [common] crash: fix Linux compilation with -DENABLE_BACKTRACE=NO * [host] allow user to select capture backend * [host] free capture interface on exit * [client] ds: build SDL backend in CI * [client] wayland: bind no-op drag-and-drop handlers * [client] wayland: require wl_compositor v3 instead of v4 * [client] wayland: gracefully downgrade to wl_output v2 * [common] crash/linux: generate core dump when handling SIGSEGV * [client] readme: remove mention of Wayland's lack of warp * [client] readme: remove mention of SDL * [client] ds: make SDL display server optional * [client] app: delay showing the escape help for 250ms * [client] app: do not toggle capture if escapeKey is held * [client] fonts: remove SDL font backend * [client] font: fix left shift runtime error due to signed shift * [client] wayland: clean up #includes in wayland.c * [client] opengl: remove dependency on SDL * [client] wayland: fail gracefully when interfaces are too old * [client] freetype: implement UTF-8 handling * [client] fonts: add freetype font rendering backend * [client] display correct log path on Windows * [client] wayland: handle output scale changes * [all] github: add build type to CI matrix * [client] all: fix more `maybe-uninitialized` when `-O3` is in use * [client] core: fix reversed logic and document the rationale for it * [client] core: increase autoCapture false exit detection sensitivity * [client] core: remove unnecessary warp and update of cursor location * [client] doc: update license output copyright date * [client] egl: add option to set initial scale algorithm * [client] egl: make scale algorithms toggleable * [client] cmake: build for nehalem when OPTIMIZE_FOR_NATIVE=NO * [common] detect clang and disable warnings for `unknown-warning-option` * [client] app: fix `format-truncation` false positive * [common] fix gcc `format-truncation` false positive * [client] egl: fix gcc false `maybe-uninitialized` positives * [client] egl: destroy cached EGLImages when changing format * [client] opengl: scale UI elements on high DPI displays * [client] egl: scale UI elements on high DPI displays * [client] opengl: support scaled UI for high DPI displays * [client] egl: support scaled UI for high DPI displays * [client] wayland: pass scale factor information to renderer * [client] renderer: add interface for high DPI rendering * [client] wayland: keep track of wl_output scale information * [client] egl: generate header file with #define for desktop shader * [client] egl: add framework for multiple scaling algorithms * [module] bump version and add copyright for @quantum5 * [module] fault in pages one by one for ivshmem devices * [client] egl: remove dependency on SDL * [client] wayland: split Wayland display server into modules * [client] wayland: add option to enable cursor warp * [client] wayland: support LG_DS_WARP_SURFACE * [client] ds: add surface-only warp variant * [doc] Add client ini example to kernel module README.md * [client] input: add releaseKeysOnFocusLoss option * [client] wayland: make clipboard writes asynchronous * [common] add a reference counted buffer type * [client] wayland: make clipboard read async * [client] wayland: implement epoll registration mechanism * [client] egl: force DMA copy into texture in on_frame * [common] ivshmem: do not create dmabuf for simple mmap * [module] test mmaping with offsets in test program * [module] implement mmap on PCI kvmfr devices * [module] improve dmabuf mmap logic for vmalloc'd memory * [module] update README to reflect VM->host changes * [module] support in-memory kvmfr devices * [client] wayland: better self-copy detection * [client] wm: optionally disable screensaver when requested in guest * [host] windows: detect whether screensaver is disabled in the guest * [client] wayland: cleanup surface and display * [res] added LG logo vector graphics * [client] app: always track the mouse button state * [client] spice: fix input:grabKeyboardOnFocus * [client] renderer: add ability to toggle the FPS display * [client] egl: fix race condition in help overlay * [client] egl: decrease the font size for the help text * [client] egl: create 24-bit colour context * [client] x11: set the window class name * [client] x11: handle window deletion properly * [client] renderer/egl: implement support for rendering help text * [client] fonts: support rendering multiline text with SDL * [client] keybind: display help overlay while ScrollLock is held * [client] keybind: add descriptions for all keybindings * [client] kb: add display names for all supported keys * [client] renderers: add on_help to renderer interface * [client] app: fix spelling error * [client] wayland: fix mouse code post refactor * [client] ds: refactor app and cursor state into app.c and core.c * [client] app: fix broken mouse sensitivity * [client] spice/wayland: improve cursor tracking logic * [client] wayland: check for the Wayland platform extension * [client] opengl: make ds functions optional * [client] wayland: add ability to create OpenGL contexts * [client] wayland: add stubs for OpenGL functions * [client] x11: properly handle window destruction and fullscreen support * [client] opengl: implement & fix opengl support * [client] x11: cleanup on failure to initialize * [client] allow renderers to pass back if they need an OpenGL context * [client] app: fix reversed ds init logic * [client] app: don't call ds->free if the ds was not initialized * [client] egl: fix building without EGL support * [client] probe Wayland backend first * [client] wayland: decorate window unless borderless is requested * [client] wayland: respect request to maximize window * [client] wayland: add handling for close event * [client] wayland: implement full screen handling * [client] wayland: implement cursor handling * [client] wayland: handle mouse/keyboard enter events * [client] egl: always render desktop texture as opaque * [client] wayland: implement window creation for egl * [client] ds: added new `getFullscreen` operation * [client] x11: don't report borders if in fullscreen mode * [client] x11: implemented missing functionallity * [client] ds: validate the ds before attempting to use it * [client] app: rearrange code to reflect the header * [client] ds: re-order as SDL is now the fallback * [client] all: move all SDL specific code into `displayservers/sdl` * [client] refactor keybinds out of main.c * [client] all: refactor keybind code & functions * [client] app: replace old SDL_Scancode with int * [client] all: move keybind implementation into app.c/h * [client] x11: fix double initialization of event members * [client] x11/sdl: get the border dimensions from the backend * [client] move remaining code in `core.c` into the SDL backend * [client/common] restructure project in prep for full SDL removal * [all] improve backtrace and debugging support * [client] opengl: remove glu dependency * [client] spice: correctly ungrab keyboard when grabKeyboardOnFocus=no * [client] wayland: allow EGL/OpenGL vsync to be set to on * [doc] Change Level1Techs link to Looking Glass forum * [doc] Add new Looking Glass discord to README.md * [client] spice: don't send zero deltas for Wayland input * [host] nvfbc: avoid recreating mouse hook and 1x1 window * [host] nvfbc: fix resource leak when pointer thread creation fails * [host] nvfbc: move NvFBCToSysCreate into nvfbc_init * [host] nvfbc: cleanup threads created by nvfbc_init on failure * [client] wayland: fix copying rich text into guest * [all] update discord link for issue template * [client] spice: fix errant keyboard grab/ungrab behaviour * [all] update issue template to reflect new log file path * [host] update README.md to reflect new log paths * [client] update host log file path * [host] installer: create start menu shortcut to log directory * [host] windows: move log path to %ProgramData%\Looking Glass (host) * [host] nvfbc: always update cursor shape on startup * [host] nvfbc: generate cursor position update on startup * [client] correct error in variable name from last commit * [client] all: don't trigger cursor redraws if the cursor is not visible * [host] cmake: use `-march=nehalem` by default * [common] windows: implement crash handler for stack traces * [host] app: fix possible string overflow * [host] service: fix possible use of unitialized variable * [host] dxgi: fix maybe uninitialized warning * [host] installer: include the debug PDB if it is available * [client] egl: use eglGetPlatformDisplay(EXT) if possible * [client] prevent `lgInit` from resetting the run state * [spice] update the PureSpice submodule * [client] unconditionally quit on second SIGINT * [host] service: disable buffering on the log file * [client] x11: don't attempt to grab the pointer on window resize * [client] x11: add error checking around XIGrabDevice * [all] fix numerous memory leaks at application shutdown * [client] egl: remove accidental commit * [client] egl: better debug output for EGL errors * [client] egl: nit, fix case of function name * [client] egl: commit missed files for the last changeset * [client] egl: runtime detect support for `glEGLImageTargetTexture2DOES` * [host] nvfbc: update cursor position on shape change * [client] wayland: use acceleration in capture mode unless rawMouse * [client] spice: always show the pointer if using input:captureOnly * [client] spice: fix failure to ungrab the kb with captureOnly * [client] app: fix `error: ‘dataSize’ may be used uninitialized` (take 2) * [client] app: fix `error: ‘dataSize’ may be used uninitialized` * [host] fix faults caused by improper startup/shudown/restart ordering * [host] nvfbc: prevent possible double free * [host] app: prevent double call to stopThreads * [host] nvfbc: remove invalid close of the HMONITOR handle * Revert "[client] sdl: move SDL specific screensaver inhibit" * [host] fix invalid LGMP free of cursor memory * [host] fix the return code for the platform specific init * [client] spice: release the mouse if the host stops * [host] use posix compatible exit codes (signed char) * [host] dont overwrite the exit code on shutdown * [host] return a proper exit code * [client] app: if spice is not in use, hide the local cursor (fixes #415) * [client] sdl: move SDL specific screensaver inhibit out of main.c * [client] wm: use correct logic for screensaver inhibition * [host] nvfbc: force composition to capture some full screen apps * [common] fix invalid read from unaligned addresses (fixes #410) * [client] spice/wayland: fix jitter when moving the cursor slowly * [github] update build workflow to update apt, and update deps * [client] spice: fix failure to align and grab the pointer * [client] spice: input:captureOnly shouldn't capture the pointer at start * [client] spice: fix input:captureOnly support * [client] doc: added `win:rotate` and keybind to README.md * [client] config: make the help text for winRotate more descriptive * [client] doc: update README.md with new libraries and backend config * [client] x11: `xi` is now a required library for the `x11` backend * [client] cmake: fix typo in cmake configuration * [client] x11: implement screensaver (un)inhibit * [client] x11: register for absolute motion events while grabbed * [client] x11: fix failure to process the correct focus events * [client] spice: set inView false if the focus is lost * [client] x11: switch to using XInput2 for all events and warp * [client] spice: fix transposed cursor scale calculations * [client] Fix compiler warnings about potentially uninitialized variables * [client] spice: remove useless check, the displayserver should do this * [client] don't hide the cursor unconditionally at startup * [client] spice: align the guest pointer to local when entering the view * [client] x11: filter out grab/ungrab focus/leave events * [client] fix regression causing failure to warp when exiting the window * [client] realign the pointer when input is re-enabled * [client] always show the cursor when not using spice (fixes #409) * [client] all: fix regression with input disable toggle * [client] fix keybind regression for EGL * [client] x11: filter out duplicate button press events * [client] x11: cosmetic, rename `device` to `raw` for raw events * [client] x11: fix regression, raw event's dont give us the cursor pos * [client] x11: removed left behind ifdef for XINPUT * [client] x11: use raw keyboard and mouse button press events * [client] app: ignore resize events that don't change the size * [client] displayserver: move screensaver handling into displayservers * [client] wayland: inhibit idle while Looking Glass has keyboard focus * [cmake] wayland: build idle-inhibit-unstable-v1 header * [client] dont show the pointer at launch unless it really should be * [client] don't attempt to align to the guest with invalid pos data * [client] mouse: do not warp the cursor if it's outside the window * [client] x11: don't care if SDL has XInput support anymore * [client] x11: implement keyboard event handing via xinput * [client] spice: do not allow the inView to be set if mouse buttons held * [client] egl: force the use of nearest if needed * [client] add keybind <ScrollLock+R> to rotate the display at runtime * [client] spice: add not subtract to the rotation * [client] retain backwards compatibillity for the capture keycode * [client] all: properly support guest rotation * [client] app: rename up,right,down,left rotation to 0,90,180,270 * [client] spice/wayland: fix capture mode relative movement * [client] add a SDL2 to uapi scancode table * [client] add a uapi to PS/2 scancode table * [client] wayland: implement key handling * [client] use uapi keybindings internally * [client] app: move SDL key event handling out of main.c * [client] app: add and expose app_handleKeyPress and app_handleKeyRelease * [host] dxgi: reverse the rotation angle. * [client] remove YUV420 support * [host] remove the remainder of the YUV420 support * [host] all: pass back the desktop rotation to the client * [client] wayland: do not fall back on SDL for scroll events * [client] wayland: do not fall back on SDL for button events * [client] wayland: clip desired guest cursor position * [client] mouse: dont leave the window if any mouse buttons are held * [client] x11: prevent default mouse button/wheel handling by SDL * [client] app: move SDL mouse event handling out of main.c * [client] x11: use XInput for button events if possible * [client] app: add and expose new app_handleButtonPress/Release methods * [client] app: move SDL window event handing out of main.c * [client] app: add new app_handleCloseEvent for displayserver backends * [client] app: always call the default eventFilter for unhandled events * [client] app: expose app_handleFocusEvent to displayservers * [host] windows: make mousehook.c work on secure desktop * [client] mouse: correct issues with cursor alignment on enter/exit/focus * [client] mouse: do not send mouse updates to the guest if not focused * [client] mouse: process mouse up event even if not in view * [client] mouse: remove erroneous guard for setCursorInView * [client] rename warpMouse to warpPointer * [client] wayland: be explicit about lack of warp support * [client] wayland: gracefully degrade when protocols are unsupported * [client] mouse: don't smooth large cursor jumps (ie, warp to align) * [host] windows: sleep for 1 second instead of 1 millisecond * [host] windows: allow capture of login screen * [client] egl: remove external dependency on libdrm * [client] wayland: update absolute mouse position * [client] mouse: prevent processing out of capture mode with invalid data * [client] mouse: grab the pointer when entering capture mode if needed * [client] wayland: report that wayland has no warp support * [client] mouse: do not grab the pointer if the platform has no warp * [client] mouse: centralize the cursor view state management * [client] wayland: fix early return preventing signal being set * [client] wayland: move wayland early init code out of main.c * [client] displayserver: add new `earlyInit` to the interface * [client] wayland: move wayland specific mouse code out of main.c * [client] mouse: force the cursor to the in view state when capturing * [client] mouse: window enter should not enable drawing the cursor * [client] mouse: stop `setGrabQuiet` from grabbing/ungrabbing the pointer * [client] wayland: fix mouse logic after refactor * [client] major restructure of platform specific code * [host] windows: test native build on GitHub Actions * [host] windows: avoid quoting issues with CreateProcessAsUserA * [obs] build with both GCC and Clang in Github Actions * [client] build with both GCC and Clang in Github Actions * [host] windows: close handle to token in enablePriv * [host] windows: add timestamps to service logs * [host] windows: remove ImpersonateLoggedOnUser call * [host] windows: handle defined exit codes in service * [client] egl: move rotation into the fragment shader * [client] all: add screen rotation support `win:rotate` * [client] egl: remove no longer used yuv shader * [host] windows: improve restart logic and remove mutex hack * [host] windows: define exit codes for future use * [host] windows: avoid leaking process and thread handles * [client] minor nit: compare double to double const * [obs] build pull requests and master with GitHub Actions * [host] windows: build pull requests and master with GitHub Actions * [common] ivshmem/linux: add stubs for ivshmemInit and ivshmemFree * [host] linux: link with libX11 and libGL * [host] linux: include missing headers * [host] xcb: remove undefined getPointer member from Capture_XCB * [host] xcb: fix xcb_create signature error * [host] xcb: fix xcb_getFrame compile error * [host] linux: build pull requests and master with GitHub Actions * [module] build pull requests and master with GitHub Actions * [client] build pull requests and master with GitHub Actions * [all] updated LGMP and PureSpice submodules * [client] spice: correctly use fabs for floating point * [client] render/opengl: remove braces so fallthrough comment is recognized * [client] spice: remove suprious const on function return type * [client] enable useful extra warnings * [client] add support for compiling with UndefinedBehaviorSanitizer * [all] use explicit void parameter lists * [client] clipboard/wayland: make DnD a no-op * [client] clipboard/wayland: avoid writing back to guest clipboard * [client] clipboard/wayland: fix null mimetype receive error * [client] wm/wayland: correctly handle double keyboard grab * [client] wm: fix duplicate declaration of static struct * [client] wm/wayland: bypass SDL loop for pointer events * [client] clipboard/wayland: make use of boilerplate from wm.c * [client] clipboard/wayland: address style nits * [client] clipboard: try each clipboard until one initializes * [client] clipboard/wayland: ignore SIGPIPE from clients that hang up * [client] clipboard/wayland: implement better text mimetype heuristic * [client] clipboard/wayland: support keyboard capability hotplug * [client] clipboard/wayland: implement host-to-VM transfers * [client] clipboard/wayland: implement VM-to-host image copy * [client] clipboard/wayland: implement VM-to-host text copy * [client] clipboard/wayland: implement a no-op Wayland clipboard * [client] spice/wayland: ignore mouse moves when dpiScale is unknown * [client] spice/wayland: use correct coordinate space * [client] wm/wayland: generate protocol files into the build dir * [client] spice/wayland: correctly update guest cursor location * [client] wm/wayload: implement keyboard grabbing * [client] removed last remnents of the decoders & parsers * [client] wm/wayland: implement grab mode for capture * [client] wm/wayland: don't grab keyboard * [cmake] add option to build Wayland headers * [client] spice: zero the error accumulators when switching grab modes * [client] spice: use modf in `cursorToInt` for fractional tracking * [client] spice: use simple custom Wayland mouse logic * [client] spice: set absolute position and focus state on Wayland * [client] no need to set the hint here anymore as it's set in wm.c now * [client] wm: specify SDL_FALSE to SDL_SetWindowGrab in wmUngrabPointer * [client] wm: added new platform agnostic wmWarpMouse * [client] remove grab/ungrab stubs * [client] spice: create and use platform agnostic grab/ungrab methods * [client] clipboard: fix heap-buffer overflow in clipboardRequest * [client] spice: fix cursor position mismatch with UI scaling * [client] fix screensaver enable * [client] add support for compiling with AddressSanitizer * Revert "[client] spice: better x11 grab/ungrab behaviour" * [client] don't show capture message at startup unless it's on * [client] spice: better x11 grab/ungrab behaviour * [client] egl: actually set the `dma` texture member * [client] egl: detect the NVIDIA driver and disable DMA support * [client] spice: fix loss of click/focus on resize * [client] fix ignoreQuit on Wayland * [client] add `input:captureOnly` to disable input when not captured * [client] updated README with new option description * [client] spice: allow mouse smoothing in capture but only if not RAW * [client] updated README with new options * [client] spice: added basic mouse smoothing for non-capture mode * [client] spice: fixed grabKeyboardOnFocus regression * [client] cursor: ensure cursor is rendered at init and aligned * [client] fix issues with cursor not always showing * [client] spice: when in autoCapture limit the exit delta * [client] refactor `struct CursorState` to use `struct DoublePoint` * [client] spice: dont ignore input that doesn't exit the window * [client] spice: don't grab the keyboard input unless we are focused * [client] spice: obey input:grabKeyboard * [client] spice: added new `input:autoCapture` mode * [client] spice: rewrite cursor handling code to take advantage of xinput * [client] updated the PureSpice submodule * [client] spice: filter out events that have < 2 axis * [client] all: use nanosleep instead of usleep for better precision * [client] spice: flag the cursor as inView unconditionally in capture * [client] added new feature input:rawMouse for RAW mouse input * [client] spice: filter out duplicate X xinput events * [client] spice: don't use the raw data values for raw input * [common] linux: stop event signals accumulating after they are serviced * [client] spice: apply sensitivity when in raw capture mode * [client] spice: x11 use xinput2 raw mode if possible for captured mouse * [client] spice: detect end of warp based on serial and x & y match * [client] spice: refactor g_cursor.last to g_cursor.pos * [client] spice: fix reversed warp offset math and incorrect lookbehind * [client] spice: general improvements to cursor warp logic * [client] ll: add new method ll_peek_tail * [client] spice: look for x11 warp completion events in key/btn events. * [client] spice: prevent the cursor from escaping while captured * [client] spice: fix rounding issue causing entry->exit in the same event * [host] use the HotSpot information as provided by DXGI * [client] spice: always flush XWarpPointer calls * [client] fix the warp logic to account for still pending warps to finish * [client] ll: fix failure to properly track the list size * [client] move new scaling variables into the CursorState struct * [client] print out the client version too when there is a mismatch * [client] if the host version doesn't match wait for it to be upgraded * spice: scale mouse input based on host DPI information * get display DPI info to scale mouse movement * [client/host] disable stack execution * [client] spice: don't rely on the cursor position when it's not visible * [client] always update positional information when new format * [client] doc: updated the readme with the latest options and bindings * [client] spice: add option to ignore the windows key * [client] spice: add new keybinds <ScrLck>+<LWin>, <ScrLck>+<RWin> * [client] cosmetics * [client] spice: properly handle high-precision scroll wheel input * [client] require 8 bit colour when creating OpenGL context * [client] egl: disable EGL when running on Wayland * [client] spice: use xlib directly for warping * [client] spice: just minor refactoring and commenting of code * [client] fix invalid method names * [client] fix hang in eglSwapBuffers when exiting while not visible * [client] set default opengl:vsync=off * [client] fix Wayland detection logic * [client] spice: don't ignore all enter window events * [client] video: ensure that the renderer is always updated on resize * [client] spice: also grab keyboard when in capture mode * [client] spice: use XGrabPointer when in grab mode * [client] spice: be more aggressive with window warp for high DPI mice * [client] spice: fix borderless due to another SDL bug * [client] rename `state` to `g_state` * [client] refactor cursor variables into their own global struct * [module] bump the version * [module] fix loading on 5.10, new member nr_range must be specified * [client] spice: correct enter/leave event handling * [client] spice: fix mouse warp on window focus * [client] spice: correct oob hotspot * [client] spice: correct rounding errors when reaching edges * [client] spice: take into account the render rect for the new x/y pos * [client] spice: don't process cursor input when the local cursor is oob * [client] spice: don't use SDLs capture mode under X11, we have our own * [client] spice: take the cursor hotspot into account * [doc] update devicenames in module/README.md * [doc] update Looking Glass website in README.md * [host] nsis: change 'Stopping' to imperative 'Stop' * [host] nsis: log more details about the process * [cmake] remove --long from version.cmake * [host] nsis: amended installer welcome description * [host] nsis: adds colour to installer and welcome screen * [host] nsisi: add welcome page to installer * [cmake] replace git diff logic with git describe --dirty * [cmake] ensure the version is flagged as dirty in all cases * [client] egl: actually do front buffer rendering * [client] egl: only use a single texture but multiple PBOs * [client] egl: check for EGLImage creation failure * [client] egl: improve DMA logic * [host] dynamically locate CreateProcesssAsUserA for pre-win 10 * [client] spice: calculate the entry point delta correctly * [client] spice: stop the cursor skipping the letterboxing * [client] spice: fix mouse exiting when the window is letterboxed/padded * [client] spice: only check for a valid position if needed * [client] spice: don't disable warp when the future cursor pos is invalid * [client] spice: adjust ordering to avoid dropping mouse input events * [client] spice: don't scale mouse if it's 1:1 * [client] reworked the mouse tracking logic * [client] added streaming clipboard support for large transfers * [client] clipboard: correctly alert for large buffers * module: fix kernel module compilation on Linux 5.10+ * [client] remove left behind debug output * [client] update the PureSpice submodule to fix large clipboard bug * [client] clipboard: refactor for readabillity * [client] don't grab keyboard if spice input is disabled * [client] egl: detect if egl is even available * [client] added new option input:grabKeyboardOnFocus * [client] added support for spice side/extra buttons * [client] set fullscreen after window creation to keep window dimensions * [client] always set the minimize on focus loss hint * [client] grab the keyboard when the window has focus * [client] add option to always show cursor * [host] don't allocate LGMP_Q_POINTER_LEN cursor shape buffers * [client] egl: cleanup/refactor of cursor texture code * [client] fixed incorrect warpState * [client] egl: fixed typo * [client] egl: added colorblind support (egl:cbMode=0/1/2/3) * [client] fix divide by zero fault with fpsMin disabled (set to 0) * [repos] updated the submodules from a prior accdental reversal * [module] updated description, copyright and author * [host] don't fail if windows is dumb and doesnt give us the cursor info * [host] enlarge the cursor buffer size for large cursor shapes * [client] egl: no need to create textures when using DMA mode * [client] egl: remove deprecated YUV420 support * [all] move defines for LGMP_QUEUE_*_LEN into KVMFR.h * [module] fix integer overflow in kvmfr_dmabuf_create * [module] fix compile on >= 5.9.0 * [module] remove now deprecated uio support * [client] egl: select the correct fourcc type for dma mode * [client] common: added spin timeout to framebuffer wait * [client] fix usage of uninitialized time variable * [client] egl: added DMA texture support for direct upload * [client] added initial framework for dma buffer support * [common] linux: added helpers for ivshmem DMA usage * [common] linux: added support for kvmfr dmabuf * convert clipboard data type variable to Looking Glass enum before passing it to function * change 'frameCount' to be atomic * [lgmp] updated the submodule * [client] reworked frame timing waits for better responsiveness * [client] fix transposed tsDiff arguments * [repos] updated PureSpice submodule * [all] updated the LGMP submodule * [host] init ivshmem options before testing * [host] windows: check the ivshmem device exists in the service * [host] set the program name/description in the app.manifest * [client] fix race with call to `on_restart` * [client] add new keybind to toggle the video stream (ScrLck+V) * [client] added new option win:dontUpscale * [host] dxgi: fix incorrect bpp value * [client] seperate frame setup and data events * [host] dxgi: ensure formatVer is incremented on re-init * [all] added new format version field to frame header * [common] linux: print reason for failure to open the shm file/device * [client] opengl: added RGBA16F support * [obs] added RGBA16F support * [client] egl: fix RGBA16F support * [client] egl: correct invalid value for texture row length * [host/client] fix invalid initialization of RGBA16F * [host/client] added experimental RGBA16 float support (EGL only) * [obs] added monochrome cursor support * [obs] added masked color cursor support * [obs] added RGBA cursor support * Add option to skip splash screen fade out * [all] more versioning fixes * [all] set the working directory for git versioning commands * [all] pass the project path to the version.cmake script * [host] fix nsis build failure to do invalid path to new VERSION file * [all] be smarter about getting the git version * [all] updated issue template and readme in preperation for B2 * [host] dxgi: don't try to get the hotspot of a null cursor * [host] dxgi: fix memory leak if an error occurs ------------------------------------------------------------------- Wed Sep 16 14:51:08 UTC 2020 - pousaduarte@gmail.com - Update to version 20200821~gitB2rc4: * [client] don't hide the cursor when SPICE is disabled * [client] ensure the cursor is updated when the window looses/gains focus * [client] added new input:mouseRedraw option * [client] only resync the timer if we got an early frame * [client] spice: improve mouse syncronization with the host * [all] update KVMFR to provide cursor hotspot information * update client/README.md: spice:captureOnStart from #278 * Update host/README.md: c-host -> host * [client] egl: ensure overflow occurs for state value checks * [host] dxgi: rework locking and retry logic for lower latency * [host] dxgi: improve frame signaling mechanics * [host] update information about PsExec now LG can run as a service * [host] updated the readme with regards to log file location * [host] Windows: fix uninstaller product name * [host] Windows: multiple fixes to the installer * [Host] Convert installer to setup service instead of scheduled task * [Host] Change default install dir "Looking-Glass" to "Looking Glass" * [Host] Correct installer and shortcut names * [Host] Installer command line options and install location selection add * [Host] Add instructions on how to build NSIS installer. * [Host] NSIS script change names from C-Host to Host * [c-host] Add NSIS installer script * [host] Windows: service (un)install now starts/stops the service * [common] linux: fix issue with infinite timeout events * [host] increase sleep timeout to 100ms * [host] shutdown capture if there are no subscribers * [host] Windows: change "Open Log File" to "Log File Location" * [host] Windows: don't open the log file, instead show it's location * [host] Windows: run with HIGH priority if started by the service * [host] send the correct cursor shape on client connection * [host] Windows: poll more freqently for a stopped LG process * [client] rework the start/restart logic to use an enum * [client] egl: don't fade the splash when restarting * [client] be quicker at detecting restart and quieter about it * [client] fix crash on shutdown while waiting for a restart * [client] egl: properly wait for a new frame on restart * [client] gracefully restart if the host application restarts * [host] Windows: added missing linker library * [host] windows: fix crosscompile take 2 * [host] windows: fix linux crosscompile * [host] Windows: improved service restart detection * [host] Windows: added missing service files * [host] Windows: Implemented service to launch LG as the SYSTEM user * [common] properly define _GNU_SOURCE and set the thread names * [common] added a sleep to the framebuffer spinlock and a sane timeout * [doc] readme updated with PsExec information * [all] update the LGMP submodule * [client] always use spice mouse host mode * [client] reset the frame time when we get a frame signal * [client] we are getting the clock anyway, just reset the time * [client] use atomics to track frame counts and avoid extra signals * Revert "[common] linux: improve event mechanics" * [common] linux: improve event mechanics * [obs] cosmetic * [obs] microsttuer fix, be sure to always grab the latest frame * [host] dxgi: default to using the acquire lock * [host] dxgi: boost GPU thread priority if possible ------------------------------------------------------------------- Mon Aug 03 13:37:22 UTC 2020 - pousaduarte@gmail.com - Update to version 20200803~gitB2rc2: * [common] fixed debug formatting across platforms * [common] framebuffer: fixed incorrect streaming usage * [common] adjust framebuffer read/write strategy for better cache usage * [common] unroll the framebuffer write loop and increase the chunk size * [host] don't stop the timer when restarting capture * [common] framebuffer: added missing header include * [common] framebuffer: use stream load instead of plain load * [common] fixed framebuffer write SIMD code performance * [common] improve frambuffer copy to avoid cache pollution (SIMD) * [common] linux: implement timers * [client] egl: make better use of atomics and fix modulus bug * [client] add option to capture input on start ------------------------------------------------------------------- Sat Jun 27 17:39:19 UTC 2020 - pousaduarte@gmail.com - Update to version 20200530~gitB2rc2: * [client] egl: don't map the texture until it's needed * [host] search the applications local directory for the config * [client] egl: fix non-streaming texture updates * [client] egl: dont re-setup the fps texture on each update * [client] egl: don't unmap/map all buffers for each frame * [client] report the host version on mismatch if possible * [client] stop people running the client as root * [client/host] share the host version with the client for diagnostics * [host] send the latest cusror information when a new client connects * [c-host] renamed finall to just plain `host` ------------------------------------------------------------------- Fri May 22 20:11:29 UTC 2020 - pousaduarte@gmail.com - Update to version 20200522~gitB2rc2: * [misc] minor readme update * [obs] remove useless advance operation * [client] check for underflow when checking frame time * [client] implemented better clock drift correction * [client] put back the fps correction from drift/skew * [client] more fps limiter fixes * [client] revert cusror update render trigger * [client] rename `fpsLimit` to `fpsMin` * [client] fix the fps limiter * [client] allow mouse movements to trigger render updates * [client] egl: fix context binding enabling a lock free implementation * [client] drop the default FPS target to 60 now that the fps is dynamic * [client] remove microstutter warning when using the fps display * [client] egl: alter warning about low fps as it doesn't apply anymore * [client] allow frame updates to be triggered by a timed event * [client] egl: move context init to lock function * [client] egl: make better use of the second thread for streaming * [obs] add delay to fix startup * [client] add short delay to improve initial startup * [client/obs] update to use new LGMP init api * [client] egl: use atomic members instead of locking the entire state * [obs] improvements to help prevent client timeouts * [client] egl: add low FPS warning when failing to keep up * [client] egl: reworked the streaming texture pipeline ------------------------------------------------------------------- Tue May 19 09:13:26 UTC 2020 - pousaduarte@gmail.com - Update to version 20200519~gitB1: * [profiler] client: updated to use new lgmp API and path * [all] remove github specific unused config file * [all] project cleanup * [client] egl: use proper atomics for pbo counting * [obs] update to use new LGMP interface * [client] fix host wait logic and print more useful help * [c-host] add kvmfr version to host output * [client] cleanup debug output * [client/host] added enforcement of KVMFR versioning * [obs] fix another potential deadlock * [obs] remove debug printf * [client & host] update the LGMP project to fix timeout issues * [obs] fix potential deadlock * [obs] use thread to handle frame advance when obs is behind * use a timer for the LGMP host instead of a thread * [client] egl: typo fix in info message * [client] fix missing release_key_binds for mouse sensitivity bindings * [client] add quit keybind * update PureSpice to fix clipboard bug * updated PureSpice submodule * update PureSpice submodule * update PureSpice submodule * [spice] updated the submodule to fix a minor shutdown glitch * [client/obs] improve frambuffer_read functions to support copy pitch * [client] opengl: render frame if config didn't change * [client] update PureSpice submodule to resolve build issue with -O3 * [c-host] dxgi: add more robust error handling on cursor shape failure * [client] removed accidental debug commit * [c-host] dxgi: close the desktop on deinit * [c-host] Enable secure desktop capture using SetThreadDesktop * [common] fix framebuffer_prepare to use atomic_store * [common] fix FrameBuffer to use atomics correctly ------------------------------------------------------------------- Thu Apr 09 17:23:29 UTC 2020 - pousaduarte@gmail.com - Update to version 20200407~gitB1: * [client] provide better mouse tracking when exiting/entering the window * [c-host] LGMP: increase the timeouts ------------------------------------------------------------------- Thu Apr 02 10:31:56 UTC 2020 - pousaduarte@gmail.com - Update to version 20200402~gitB1: * [client] fix buffer overflow in opengl_options * [module] added missing kvmfr.h, fixes #253 * [spice] updated the submodule, fixes #249 ------------------------------------------------------------------- Tue Mar 10 13:50:04 UTC 2020 - pousaduarte@gmail.com - Update to version 20200311~gitB1: * [module] fix compilation for linux 5.6 ------------------------------------------------------------------- Tue Feb 25 16:38:05 UTC 2020 - pousaduarte@gmail.com - Update to version 20200225~gitB1: * [common] fix build for newer versions of binutils ------------------------------------------------------------------- Fri Feb 14 14:03:23 UTC 2020 - pousaduarte@gmail.com - Update to version 20200212~gitB1: * [c-host] dxgi: dont send null movements when only the visibility changed * [c-host] dxgi: fix failure to provide cursor visibility information ------------------------------------------------------------------- Fri Feb 07 22:15:06 UTC 2020 - pousaduarte@gmail.com - Update to version 20200203~gitB1: * [client] updated the PureSpice submodule * [client] updated spice submodule to fix shutdown bug * [client] update to properly disconnect from spice * [repos] updated submodules * [doc] added new github sponsorship option to README.md * [github] updated sponsorship for github sponsors * Fixed typo in issue template * [all] updated the main README.md file * [client] moved spice into a seperate repository ------------------------------------------------------------------- Fri Jan 31 08:52:36 UTC 2020 - pousaduarte@gmail.com - Update to version 20200129~gitB1: * [c-host] revert locking series, this needs more thought * [c-host] make pointer post function thread safe * [c-hots] fix incorrect unlock timing * [c-host] increase the queue length and remove debug output * [c-host] dxgi: use low level mouse input by default * [c-host] nvfbc: no need for a cursor position event with LGMP * [all] cleanup use of atomic locking and switch to C11 stdatomic * [spice] reworked to avoid locking requirements on the input channel * [spice] improve connection code to use a single buffer * [LGMP] update the submodule * [kvmfr] stop the module building the test application by default * [common] `1e9` is a floating point notation * [common] fix building on mingw for linux * [lgmp] update module again with actual fix! * [LGMP] updated the module again * [c-host] don't hog CPU resources if queues are full * [common] added timestamps to log output * [c-host] respect the full queue * [LGMP] updated the submodule with the fixed locking mechanics * [c-host] nvfbc: correct frame change check logic * [c-host] nvfbc: do not send frames that have not changed * [obs] update the LGMP module to fix low frame rate capture issue * [c-host] increase delay as lgmp clients can now remove empty messages * [common] linux: signal should signal all listeners * [LGMP] submodule update again * [LGMP] another submodule update * [LGMP] updated the submodule again * [client] fix hang when trying to terminate an unconnected client * [all] updated LGMP module, a rebuild of host and client IS required * [client] always update the renderer cursor state * [all] make cursor visible a flag and send it seperate to position * [c-host] decrease LGMP polling interval to a sane value and comment * [c-host] dxgi: invisible cursors do not have position information * [lgmp] updated the lgmp submodule * [c-host] increased the polling delay as there is a better fix for LGMP * [c-host] increase lgmp host process resolution * [c-host] win: fixed improper signal detection in event code * [client] updated to use new cursor state flags * [c-host] inform the client if we have positional cursor information * [c-host] mousehook: ignore repeated hook events * [kvmfr] fixed incorrect buffer size calculation * [c-host] fix bounds checking on frame index * [c-host] actually use the 2nd LGMP frame ------------------------------------------------------------------- Thu Jan 23 13:41:33 UTC 2020 - pousaduarte@gmail.com - Update to version 20200121~gitB1: * [common] fixed improper comment parsing, fixes #233 * [client] increase the lgmp queue timeouts * [spice] prepare spice for external usage * [client] cosmetics * [client] added checking for invalid arguments to custom string options ------------------------------------------------------------------- Fri Jan 17 19:37:57 UTC 2020 - pousaduarte@gmail.com - Update to version 20200117~gitB1: * [all] moved time and locking methods to the common library * [egl] added fallback for platforms not supporting eglGetPlatformDisplay ------------------------------------------------------------------- Tue Jan 14 22:16:01 UTC 2020 - pousaduarte@gmail.com - Update to version 20200113~gitB1: * [client] override new behaviour in SDL 2.0.15 and disable xinput2 ------------------------------------------------------------------- Mon Jan 13 09:01:13 UTC 2020 - pousaduarte@gmail.com - Update to version 20200113~gitB1: * [all] expose the FrameBuffer struct for correct sizeof calculations * [all] align the frame data to the page boundary * [c-host] adjust maximum size to account for alignment * [c-host] ensure frames are page aligned * [common] added agnostic function sysinfo_getPageSize * [kvmfr] don't recreate the pages for each map * [lgmp] updated the module to bring in support for aligned allocations * [client] enable SDL_SYSWMEVENT on X11 to work around SDL2 bugs * [kvmfr] bump the version in dkms.conf * [kvmfr] added the ability to obtain a dmabuf of the ivshmem memory ------------------------------------------------------------------- Sun Jan 12 16:03:27 UTC 2020 - pousaduarte@gmail.com - Update to version 20200112~gitB1: * [common] add comment support to the ini parser * [common] revert /dev/uio0 naming change behaviour * [c-host] nvfbc: free event on deinit * [c-host] nvfbc: fixed invalid nvfbc init * [c-host] update NvFBC to use new capture interface * [spice] turn on TCP_QUICKACK * [client] don't send mouse click events when out of view * [client] don't draw the cursor if it leaves the frame * [client] more cursor tweaks for better integration with the WM * [client] more cursor tweaks and some cleanup * [client] fix mouse acceleration when in capture mode * [client] improved sync with guest cursor position * [c-host] updated to use new LGMP API to increase the timeout * [obs] implemented intial OBS Looking Glass Client plugin * [all] updated LGMP submodule * [client] don't fail on invalid magic at startup * [profiler] updated to use LGMP * [common] numerious bad usage bug fixes * [c-host] increase the pointer queue length * [lgmp] updated submodule * [lgmp] updated submodule * [client/c-host] updated to use new LGMP naming conventions * [c-host] cleanup dxgi cursor code a bit * [client] handle pointer visibility properly * [client] added support for LGMP * [c-host] use the correct buffer for the cursor shape * [c-host] improved intial connection sync * [c-host] don't overflow the pointerMemory array * [LGMP] start of c-host conversion to use LGMP ------------------------------------------------------------------- Mon Jan 06 13:22:12 UTC 2020 - pousaduarte@gmail.com - Update to version 20200106~gitB1: * [common] link setupapi for ivshmem windows implementation * [common] properly detect all versions of Windows 8 * [c-host] dont use DX12 feature levels on Windows8 * [client] check for clock drift and correct for it ------------------------------------------------------------------- Sun Jan 05 22:02:09 UTC 2020 - pousaduarte@gmail.com - Update to version 20200106~gitB1: * [common] added back support for shared memory files ------------------------------------------------------------------- Fri Jan 03 09:03:51 UTC 2020 - pousaduarte@gmail.com - Update to version 20200103~gitB1: * [c-host] dxgi: check for failure of getDesc1 * [client] fixed strange resize effect due to loss of precision * [client] fix issue with windowmanager forcing the window size (i3wm) * [client] added new `win:forceAspect` option * [client] use the event data instead of calling SDL_GetWindowSize * [client] update client to use the common ivshmem* methods * [c-host] init platform app struct * [common] move ivshmem code into the common library * [client] switch from SDL_Cond to LGEvent * [client] switch from SDL_Thread to lgThread * [common] moved linux agnostic code into the common library * [common/c-host] move agnostic code into `common` library ------------------------------------------------------------------- Sat Dec 28 15:53:01 UTC 2019 - pousaduarte@gmail.com - Update to version 20191228~gitB1: * Fix client not building on void linux Thanks to ------------------------------------------------------------------- Thu Dec 19 19:28:33 UTC 2019 - pousaduarte@gmail.com - Update to version 20191219~gitB1: * [c-host] fix #220, invalid handle provided to WaitForObjects * [client] fix return value in spice_read_nl error path ------------------------------------------------------------------- Tue Dec 17 18:57:03 UTC 2019 - pousaduarte@gmail.com - Update to version 20191217~gitB1: * [c-host] dxgi: fix segfault with maxTextures=1 on client reconnect * [c-host] nvfbc: fix build attempt 2 :) * [c-host] nvfbc: fix failure to build due to new event interface * [c-host] dxgi: futher event improvements * [c-host] add spinlock support to events and alter dxgi to use them * [c-host] dxgi: added new `useAcquireLock` option for quirked GPUs * [common] locked section macro should use it's argument * [c-host] dxgi: interlock so we can map outside of the capture thread ------------------------------------------------------------------- Sun Dec 15 12:52:39 UTC 2019 - pousaduarte@gmail.com - Update to version 20191215~gitB1: * [c-host] DXGI profiled and tuned again :) * [profile] added a tool to help profile the host capture perf * [c-host] windows: don't attach to the debuggers console * [c-host] windows: fix --help output in command prompt * [c-host] readme: change windows instructions to use MSYS2 * [c-host] readme: added dev setup instructions for Windows ------------------------------------------------------------------- Thu Dec 12 19:05:02 UTC 2019 - pousaduarte@gmail.com - Update to version 20191213~gitB1: * [client] Use eglGetPlatformDisplay() to fix surface creation * [client] opengl: handle configuration failure properly * [client] opengl: fixed failure to render full frame ------------------------------------------------------------------- Tue Dec 10 22:31:56 UTC 2019 - pousaduarte@gmail.com - Update to version 20191210~gitB1: * [client] fix rare race condition when renderer is not ready ------------------------------------------------------------------- Fri Nov 15 19:33:32 UTC 2019 - pousaduarte@gmail.com - Update to version 20191115~gitB1: * respect minimizeOnFocusLoss ------------------------------------------------------------------- Thu Oct 31 14:25:10 UTC 2019 - pousaduarte@gmail.com - Update to version 20191030~gitB1: * [misc] added sponsorship config for github ------------------------------------------------------------------- Sat Oct 26 12:29:24 UTC 2019 - pousaduarte@gmail.com - Update to version 20191026~gitB1: * [client] cleanup and re-order startup/shutdown code * [client] properly shutdown on failure to connect to the spice server * [client] don't require wayland-egl, fixes #204 ------------------------------------------------------------------- Thu Oct 24 18:14:38 UTC 2019 - pousaduarte@gmail.com - Update to version 20191024~gitB1: * [c-host] windows: update ivshmem driver header and usage ------------------------------------------------------------------- Wed Oct 16 18:15:45 UTC 2019 - pousaduarte@gmail.com - Update to version 20191014~gitB1: * [common] obey the destination buffer size * [all] bump KVMFR version due to incompatible changes * [host] cosmetics ------------------------------------------------------------------- Wed Oct 09 20:55:58 UTC 2019 - pousaduarte@gmail.com - Update to version 20191009~gitB1: * [client] fix xor support for masked color cursors * [common] fix bug in framebuffer_read * [all] fix the version * [client/host] added new asyncronous memory copy ------------------------------------------------------------------- Sun Sep 01 20:05:51 UTC 2019 - pousaduarte@gmail.com - Update to version 20190830~gitB1: * [client] egl: improved streaming texture syncronization * [client] fix shutdown race condition with the frame thread * [client] egl: more verbose error on texture egl failures * [client] fix invalid shutdown of renderer outside of it's thread * [EGL] add debug printf helper ------------------------------------------------------------------- Sat Jul 27 10:03:56 UTC 2019 - pousaduarte@gmail.com - Update to version 20190723~gitB1: * [client] fix failure to build due to broken symlink, fixes #173 ------------------------------------------------------------------- Tue Jul 16 07:23:19 UTC 2019 - pousaduarte@gmail.com - Update to version 20190715~gitB1rc6: * [client] added missing include ------------------------------------------------------------------- Wed Jul 10 20:41:01 UTC 2019 - pousaduarte@gmail.com - Update to version 20190710~gitB1rc6: * [client] autodetect monitor refresh rate for fps limit * Implement option to disable minimizing window on focus loss. Default behavior is not changed - not configuring these options unfocused window is minimized. ------------------------------------------------------------------- Sat Jun 22 10:49:06 UTC 2019 - pousaduarte@gmail.com - Update to version 20190619~gitB1rc6: * [all] allow disable of backtrace support during build * [client] fix typo in SDL_VIDEODRIVER from prior patch, whoops :) * [client] don't override SDL_VIDEODRIVER if it is already set * [client] improve streaming texture performance ------------------------------------------------------------------- Sat Jun 15 22:05:29 UTC 2019 - pousaduarte@gmail.com - Update to version 20190612~gitB1rc5: * [c-host] not all versions of mingw support wcstombs_s ------------------------------------------------------------------- Sun Jun 09 13:16:26 UTC 2019 - pousaduarte@gmail.com - Update to version B1c5~git20190606: * Rewrite dkms.conf * Update makefile to allow kernel override ------------------------------------------------------------------- Fri May 31 17:48:17 UTC 2019 - pousaduarte@gmail.com - Update to version B1c5~git20190531: * [client] README.md cosmetics * [client] updated documentation for new keybinds * [client] added keybinds to send Ctrl+Alt+Fn * [all] made a nicer icon, hopefully just a placeholder for now * [client] allow the screensaver to run * [client] fix invalid access on early termination ------------------------------------------------------------------- Wed May 29 21:13:34 UTC 2019 - pousaduarte@gmail.com - Update to version B1c5~git20190528: * [c-host] dxgi: fix invalid cursor type define * [c-host] take just the ivshmem headers and omit the kvm-guest submodule * [host] removed old host application from the project, see c-host * [c-host] resend the last on client reconnect if a timeout occurs * [all] fix missing cursor when client reconnects ------------------------------------------------------------------- Mon May 27 12:51:31 UTC 2019 - pousaduarte@gmail.com - Update to version B1c3~git20190527: * [client] egl: remove accidental commit of debug code * [client] egl: expose a few new tuneables * [client] main: properly shutdown if renderer fails to init * [client] typo in config help text * [c-host] dxgi: allow out of order frame mapping * [common] option: fixed missing null terminator * [common] fix failure to initialize structure * [client] check for failure to map pbo memory * [client] fix the binary path when debugging * [c-host] dxgi: don't stall the GPU pipeline to map textures to ram * [client] Add win:maximize to maximize on startup * [client] Fix typo in example of README.md ------------------------------------------------------------------- Fri May 24 14:05:12 UTC 2019 - pousaduarte@gmail.com - Update to version B1c2~git20190524: * [common] fixed issue with building for windows (typo) * [client] main: add + sign to mouse sensitivit alerts * [client] fix typo * [client] main: new feature to increase/decrease mouse sensitivity * [client] main: better UX with the escape key combinations * [doc] client: document defaults instead of my preconfigured values * [doc] fixed another formatting snafu * [doc] fix formatting a bit * [doc] Updated project documentation in leu of Beta 1 release * [egl] alert: fix fuzzy font bug and make alerts a little more plesant * [module] update instructions and add dkms.conf * [client] shutdown application on window close even if ignoreQuit is set * [all] corrected NV keybinding information in README.md * [client] egl: query maximum multisample support for MSAA context * [common] added new sysinfo unit and multisample query support * [client] egl: add options for maximum NV level and initial level * Set theme jekyll-theme-cayman * [all] futher tweaks to the readme.md * [all] updated the main readme in preperation of beta 1 * [c-host] nvfbc: expose option to disable cursor decoupling * [c-host] nvfbc: print out the SDK version and enable NvFBC * [c-host] correct NvFBC information in the README.md * [c-host] just another minor readme update * [c-host] try to be more compatible with mingw headers * [c-host] minor readme updates * [c-host] fixed project for cross compliation for Win on Linux * [client] egl: fix streaming texture re-init crash * [client] app: new options to reduce CPU usage * [client] egl: use persistant mapped texture buffers * [client] fix race condition on initial uniform access * [c-host] added tray icon and context menu * [client] added missing semi-colon (not sure how that happened) * [client] fixed typo in option description * [client] port all configuration parsing to use the new option helper * [common] option: add debug errors for invalid options * [common] option: fix another invalid usage of an unset variable * [common] option: allow short options to toggle boolean values * [common] option: trim whitespace from option names and values * [common] option: fix crash on failure to parse invalid config file * [common] option: fix incorrect column header padding * [common] option: fix invalid access of null/invalid options * [common] option: added shortopt support and pretty help print * [common] added stringutils with alloc_sprintf helper * [common] fix stringlist const free bug ------------------------------------------------------------------- Sat May 18 15:11:09 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190517: * [c-host] windows: fix dxgi option struct syntax * [c-host] windows: add log file output option * [c-host] option: fix memory corruption due to usage of old pointers ------------------------------------------------------------------- Mon May 13 12:45:24 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190512: * [common] track if option set failed and print help if so * [c-host] linux: implemented `getValues` support for shmDevice option * [common] add getValues callback for options * [common] added new StringList helper module * [c-host] be compatible with new option ABI * [common] rework option API to allow for custom types ------------------------------------------------------------------- Sat May 11 10:19:29 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190511: * [common] make local struct local * [c-host] load config from looking-glass-host.ini if available * [common] added config file loading capability * [c-host] linux: remove extra shm device name validation * [common] remove "Option" from the option help output * [common] further option help cleanup * [c-host] update to use new option validator and tidy up output * [common] seperate validator and clean up output * [c-host] linux: fix shmDevice file size check * [c-host] implement shmDevice option validator and help * [common] validate all options including defaults * [host] [c-host] added support to specify IVSHMEM device * [common] fix option parser memory leak * [c-host] nvfbc: remove debug line from prior commit * [c-host] dxgi: initialize option to NULL for consistancy * [c-host] dxgi: add the ability to specify the adapter and/or output. * [common] match the correct option * [c-host] fix build under windows * [c-host] initial agnostic option api and parser * [c-host] windows: fix errors from prior commit * [c-host] provide a platform agnostic method of passing args to app_main * [c-host] linux: updated to use the correct headers ------------------------------------------------------------------- Sat Apr 20 18:35:43 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190419: * [client] egl: implement pixel perfect upscaling ------------------------------------------------------------------- Sun Apr 14 11:10:24 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190414: * [client] perform proper shutdown on SIGTERM ------------------------------------------------------------------- Fri Apr 12 17:14:05 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190412: * [common] fix build under arch, thanks @techfreak for pointing this out * [c-host] nvfbc: disable ARGB10 until NVIDIA fix the API (if ever) * [c-host] fix NvFBC build after moving headers * [common] implemented crash handler for linux (including backtrace) * [c-host] added initial crash handler stub * [build] make "common" a static library (part 2/2) * [build] make "common" a static library (part 1/2) * [c-host] add ability to provide NvFBC privData * [c-host] better formatting of README.md * [c-host] a few build tweaks and updated README.md * [c-host] stop the capture when stopping threads * [c-host] cmake: fix bad method of setting CFLAGS * [c-host] remove extra NvFBC noise * bump version * [c-host] tons of windows specific fixes * [c-host] nvfbc: continued implementation of NvFBC * [c-host] added initial nvfbc support * [c-host] fix multiple re-inits due to threads flagging for reinit * [c-host] show the build version * [c-host] restructure project to use cmake ------------------------------------------------------------------- Sat Apr 06 13:01:31 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190405: * Add install binary target ------------------------------------------------------------------- Sat Mar 30 14:37:09 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190331: * [client] egl: make nightvision enhance luminosity before gain * [client] main: move config free into new `config_free` method * [client] main: move config and option parsing into a seperate unit * [client] more cleanup and added alerts for new events * [client] main: don't ignore keybinds when spice is disabled * [all] fix typo in readme * [all] fix readme table formatting * [all] updated README.md * [client] main: added <escape>+I for spice input enable toggle * [client] main: fix errornous double keybind registration * [client] main: add full screen toggle key bind <escape>+F * [client] egl: added new super+N binding to increase image gain * [client] main: add interface for modules to register key binds * [client] main: prevent the cursor thread starting too early * [client] cmake: list enabled features in configure output * [client] cmake: cosmetics * [client] added options to disable/enable interfaces * [client] use cmake to generate renderers/fonts/clipboards headers/code * [client] egl: remove the rest of the shaders into seperate files * [client] cmake: fix inconsistent versioning * [client] egl: fix minor error in CMakeLists * [client] egl: move shaders into seperate files and build into objects * [client] project restructure part 2/2 * [client] egl: requires gl * [all] added pre-commit script and VERSION * [client] project restructure part 1/2 ------------------------------------------------------------------- Tue Mar 26 19:58:37 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190326: * [egl] don't assume SDL is compiled with Wayland support ------------------------------------------------------------------- Wed Mar 20 21:40:59 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190318: * [CLIENT] cosmetic code changes * [CLIENT] Fixed invalid value initialization * [CLIENT] Added option for custom window title ------------------------------------------------------------------- Mon Mar 04 13:41:45 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190304: * [c-host] dxgi: added pointer support * [c-host] app: added pointer interface and support * [c-host] change getFrame/Pointer to return a real status * [c-host] initial stubs for pointer support * [c-host] linux: updated, but not working yet :) * [c-host] dxgi: reworked for better pipelining * [c-host] dxgi: remove needsUnmap bool * [c-host] dxgi: cleanup init code failure path * [c-host] rework events * [c-host] app: fix updateEvent race problem * [c-host] app: reinit on failure to capture a frame * [c-host] dxgi: fixed memory leak * [c-host] dxgi: allow a 2nd frame to be captured during a prior copy * [c-host] dxgi: only flag frame updates if there was actually an update * [c-host] fix deadlock when there is no update * [c-host] fixed build under linux * [c-host] app: inital capture is now working ------------------------------------------------------------------- Sun Mar 03 15:32:25 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190303: * [c-host] remove testing code * [c-host] dxgi: implement getFrame * [c-host] app: fix deadlock on reinit * [c-host] windows: added event support * [c-host] dxgi: release resources * [c-host] linux: add getFrame support to xcb capture * [c-host] app: add initial frame capture support * [c-host] add app_quit for clean shutdown support * [c-host] add platform event interface and linux support * [c-host] linux: initial xcb capture ------------------------------------------------------------------- Fri Mar 01 17:32:44 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190301: * [c-host] linux: added initial stubs for XCB capture * [c-host] dont use a interface that fails to create * [c-host] linux: correct device name comparison * [c-host] linux: simplify read from device * [c-host] linux: check the device name * [c-host] correct buffer size for stncat * [c-host] implemented linux ivshmem support * [c-host] update linux startup * [c-host] improve capture reinitialization * [c-host] removed debug code * [c-host] general windows fixes * [c-host] added linux thread support * [c-host] added cursor and frame thread stubs * [c-host] add missing pointer initialization * [c-host] added platform agnostic thread interface * [c-host] more windows basics and ivshmem pointer init * [c-host] don't include windows.h in the main app * [c-host] fix makefile for linux builds * [c-host] move dxgi capture into windows directory * [c-host] move windows dll folder into windows dir * [c-host] added linux platform stubs * [c-host] added windows ivshmem unmap support * [common] gnuc on windows still uses / as the directory separator * [c-host] initial ivshmem code and platform specific init * [c-host] only include windows defines when building on windows * [c-host] added new pure C host project, see README.md * [host] added missing file from build * [host] move windows specific debug code to the host ------------------------------------------------------------------- Wed Feb 27 15:21:07 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190226: * [client] main: fixed help text typo * [client] main: help output cosmetics * [client] main: better error text for changed spice options * [client] main: add options to control spice features * [client] x11: remove noise about unsupported formats * [client] fixes #135, double free crash * Revert "[client] x11: prevent race condition causing double free" * [client] x11: prevent race condition causing double free * [client] x11: fix bidirectional clipboard functionallity * [client] spice: correct sending of large va agent buffers * [client] x11: ignore clipboard select events from ourself * [client] x11: don't notify to clear if no property * [client] initial host to client clipboard sync working ------------------------------------------------------------------- Fri Feb 22 20:01:51 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190223: * [client] spice: implement full clipboard guest copy support * [client] cosmetics * [client] core: added initial clipboard interface and x11 stubs * [all] update copyright dates * [client] spice: better align the spice api for x11 cliboard integration * [client] spice: added clipboard callbacks to decouple spice from SDL * [client] spice: fixed copying large amounts of text to the clipboard * [client] spice: fix read to allow for larger amounts of data * [client] spice: fix memory leak * [client] spice: implemented guest -> client clipboard sync ------------------------------------------------------------------- Thu Feb 21 20:58:10 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190222: * [client] spice: implement channel caps and initial clipboard support * [client] spice: remove extra debug output * [client] spice: fix incorrect message size for agent messages * [client] spice: fix unitialized value * [client] spice: protocol updates for performance and agent support * client: cosmetics * [client] update viewport size after window is created * [client] spice: correct issue with new channel list support * [client] spice: initial agent support * [client] spice: minor fixes, don't assume inputs channel exists ------------------------------------------------------------------- Tue Feb 19 20:50:10 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190219: * [client] spice: remove useless mouse queue, this is not needed ------------------------------------------------------------------- Mon Feb 11 19:11:28 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190210: * [client] spice: use correct enumeration for SpiceLinkReply ------------------------------------------------------------------- Fri Feb 08 13:21:19 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190207: * [host] dxgi: fixed reversed logic for fallback * [host] fix compiler warnings * [host] fallback to IDXGIOutput1 if IDXGIOutput5 is not available ------------------------------------------------------------------- Sun Jan 27 21:29:00 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190125: * [client] spice: debug print unsigned int re #127 * change spice port type to unsigned short ------------------------------------------------------------------- Fri Jan 18 13:53:38 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190117: * [client] spice: fix incorrect cursor button state being sent ------------------------------------------------------------------- Sat Jan 12 19:26:46 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190112: * [client] update client to handle new cursor move code * [host] use a global hook to obtain cursor move pos ------------------------------------------------------------------- Thu Jan 10 19:04:58 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190109: * [host] NvFBC: user specified privateData for debug ------------------------------------------------------------------- Tue Jan 08 20:11:28 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190108: * updated links to latest accurate urls. added trello board url. ------------------------------------------------------------------- Fri Jan 04 19:30:49 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190103: * [host] nvfbc: initial updates to re-enable support ------------------------------------------------------------------- Wed Jan 02 16:21:19 UTC 2019 - pousaduarte@gmail.com - Update to version 12~git20190102: * [client] egl: fix graphical glitch with splash * [client] [Patch 2/2] fixes #106 * [host] [Patch 1/2] fix copy of padded resolutions * [client] egl: added untested support for wayland ------------------------------------------------------------------- Mon Dec 17 14:28:44 UTC 2018 - pousaduarte@gmail.com - Update to version 12~git20181217: * Store the initial window size in the state ------------------------------------------------------------------- Sun Dec 16 13:45:24 UTC 2018 - pousaduarte@gmail.com - Update to version 12~git20181216: * [client] egl: fixed uninitialized variable bug * [client] fix early render issue * [client] make EGL the default renderer * [client] egl: implemented alerts and some minor fixes to fps * [client] egl: slight correction to splash * [client] egl: added splash screen rendering ------------------------------------------------------------------- Thu Dec 13 17:16:31 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181213: * [client] egl: fix cursor regression * [client] egl: fix mono cursor double height regression * [client] warn about poor FPS display performance * [client] pre-calculate the frame time * [client] don't calculate FPS if we are not showing it * [client] use clock_nanosleep for more accurate frame timing * [client] rename fps variables to be more correct * Revert "[client] improve fps target accuracy" * [client] improve fps target accuracy * [client] egl: corrected fps alpha blending * [client] egl: moved desktop rendering into seperate unit * [client] egl: add and use default quad helper for models * [client] egl: moved fps code into seperate unit * [client] egl: added missing files from last commit * [client] egl: migrate cursor code into seperate unit * [client] define GL_GLEXT_PROTOTYPES globally * [client] egl: costmetics * [client] egl: moved egl sources into subdirectory * [client] egl: add checking to egl_shader_get_uniform_location * [client] egl: rename "shader" to "this" for consistancy * [client] opengl: fixed incorrect colors and added 10-bit RGBA support ------------------------------------------------------------------- Tue Dec 11 13:31:15 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181211: * [client] egl: removed accidental commit of test code * [client] removed use of now removed frame type, fixed #105 ------------------------------------------------------------------- Fri Dec 07 12:55:46 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181207: * [host] initiate the texture copy earlier * [host] removed incomplete h264 ------------------------------------------------------------------- Tue Dec 04 13:34:57 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181204: * [host] updated to take advantage of DXGI v1.5 * [client] added support for RGBA, BGRA and 10-bit RGBA ------------------------------------------------------------------- Tue Nov 20 13:54:02 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181120: * [client] added missing lg-fonts.c to the repo * [client] egl: added FPS rendering * [client] remove other render modes from font ABI * [client] move FPS calculations out of renderers * [client] font: implemented font ABI and updated OpenGL to use it ------------------------------------------------------------------- Fri Nov 02 13:32:31 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181102: * [host] simplify capture logic and fix re-init bug ------------------------------------------------------------------- Fri Oct 19 18:09:25 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181019: * [host] fix hang on capture error * [host] fix failure to re-init * [host] increase cursor ring size to avoid a race * [host] remove unused critical sections * [host] accumulate cursor updates rather then queue ------------------------------------------------------------------- Wed Oct 10 12:40:05 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181009: * [client] use mouse visibility info properly * [host] correct cursor visibility information * [host] correct mouse position with hotspot offset * [host] fix cursor visibility bug * [host] improve mouse sync with the client ------------------------------------------------------------------- Fri Oct 05 11:37:47 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181004: * [client] consume all SDL events in the filter * [dxgi] cleaned up retry logic * [client] better usage of SDL event loops ------------------------------------------------------------------- Wed Oct 03 20:15:52 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20181004: * [egl] implement window positioning * [egl] improve texture upload performance * [client] tighten timings * [host] general performance improvements ------------------------------------------------------------------- Sat Sep 29 18:10:58 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180930: * [host] better sync, helps enormously with 4K!!! * [dxgi] fix crash caused by failure to release in some instances. ------------------------------------------------------------------- Wed Sep 26 18:13:54 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180926: * [host] DXGI capture improvements * [egl] fix incorrect xor blending for monochrome cursors * [egl] added monochrome cursor rendering ------------------------------------------------------------------- Mon Sep 24 18:09:21 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180924: * [egl] fix performance issue with cursor updates and add todo message * [egl] fix incorrect mouse size and position scaling * [egl] fix incorrect mouse colors * [egl] added intial cursor support ------------------------------------------------------------------- Sun Sep 23 20:48:57 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180923: * [egl] simplify yuv to rgb shader * [egl] implemented YUV420 decode support in hardware * [egl] don't re-create the buffer each frame * [egl] make new OpenGL ES renderer available * [egl] cleanup texture API * [egl] split out texture code into it's own object * [egl] added basic shaders and use dma to xfer buffer to the gpu * [egl] initial commit of new modern OpenGL ES renderer ------------------------------------------------------------------- Sat Aug 04 20:42:43 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180803: * Default XDG_SESSION_TYPE to `unspecified` ------------------------------------------------------------------- Mon Jul 30 11:30:06 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180730: * Corrects an error in a debug message * [client] Adds back support for wayland ------------------------------------------------------------------- Sun Jul 29 11:41:58 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180728: * [client] cleanup of renderer API for better usage * [client] disable multisample after logo is gone * [host] remove the invalid usage of SafeRelease * [host] don't uselessly try to scale 1:1 textures * [client] implemented initial slow yuv420 support * [host] correct YUV output, do not copy padding bytes * [host] correct RGBtoYUV shader output * [host] correct invalid copy size for U & V planes * [host] fix compiler warnings * [host] fixed project Release shader build * [host] added YUV420 output support * [host] removed unused shader view * [host] ignore compiled shader headers * [host] remove compiled shader headers from repo * [host] remove the depth buffer, it's unused * [host] added format converter class * [h264] cosmetics * [dxgi/h264] fix failure to re-init h264 correctly ------------------------------------------------------------------- Fri Jul 27 07:55:58 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180726: * [parser/nal] no need to check for null before free (fixes #87) * [host] move H264 out of DXGI into seperate class * [memcpy] fix error caused by switch to shorter OPs * [dxgi] update DXGI to use timeout return value * [host] add timeout return value for repeated frame ------------------------------------------------------------------- Tue Jul 24 12:27:35 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180724: * [host] flag paused when waiting for sec desktop * [client] implement stream paused alert ------------------------------------------------------------------- Mon Jul 23 07:50:02 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180723: * Updated README.md * [host] replaced MultiMemcpy with plain memcpySSE ------------------------------------------------------------------- Fri Jul 20 12:12:38 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180720: * [client] add switch to disable alert messages, fixes #83 * [opengl] added fade out to wait screen * [opengl] render alerts and fps on wait screen * [client] scale up the logo and put a gradient behind it * [client] render the looking glass logo (almost) * [client] enable multisampling * [client] allow window resize event's before startup ------------------------------------------------------------------- Tue Jul 10 08:02:11 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180710: * [common] no need to use AVX operands here either * [host] replaced use of AVX in memcpySSE ------------------------------------------------------------------- Tue Jun 05 13:06:24 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180605: * [client] Allow keyboard capture (#26) ------------------------------------------------------------------- Fri Jun 01 17:14:10 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180601: * [host] fix crash on screen blanking ------------------------------------------------------------------- Thu May 31 10:05:48 UTC 2018 - pousaduarte@gmail.com - Update to version 11~git20180531: * [client] fix too early release of OpenGL context * [client] only provide linker flags at link time * [host] improve capture performance * Fixed typo in word wish ------------------------------------------------------------------- Tue May 29 10:32:42 UTC 2018 - opensuse-packaging@opensuse.org - Update to version 11~git20180529: * [host] remove debug tracing noise * [host] don't count re-init requests as failures * [client] use atomic locking by default * [client] fixed warning/error text * [client] remove xlib shim as it is no longer needed * [client] replace custom Makefile with cmake build * [client] remove h264 decoder for now * [client] remove useless linking against libssl * [client] added nettle/bignum.h to rsa.c, CentOS 7 seems to need it * [client] removed invalid MS Windows specific hint * [client] don't scale the mouse when in capture mode * [client] added missing library for `floor` function * [opengl] added support for alerts * [client] added linked list utility * [client] added support for alert text * [client] alert the user when capture mode is on or off * [client] add alert method to renderer api * [client] added the ability to specify the capture key (-m) * [client] allow the system screensaver to operate, -S to disable * [client] remove noise about scaling/alignment as this is fixed * Code cleanup * Fixing scaled mouse movement * [doc] make the module README a Markdown file * [doc] Updated module readme * [client] start rendering a little earlier * [opengl] render a blue screen while waiting for sync * [host] ask for unicode with mingw-w64 makefile * [client] add support for masked colour cursors (fixes #61) * [host] fixed missed cursor shape updates ------------------------------------------------------------------- Fri May 25 12:09:03 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180525: * [client] reduce weight of FPS limiter feedback ------------------------------------------------------------------- Thu May 24 12:41:54 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180524: * [client] prevent usleep underflow in FPS limiter * [host] cosmetics * [host] don't assume the capture was successful * [host] add critical section for m_cursorInfo * [client] added FPS limiter for when running without vsync * [client] adjustments for better sync * [host] update to KVMFR v6 and decouple mouse * [kvmfr] decouple cursor flags from frame flags and fix timings ------------------------------------------------------------------- Wed May 23 12:22:07 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180523: * [client] add unix socket support, fixes #67 * [doc] Fix formatting * [doc] Rename DEBUGGING file for Markdown formatting * [doc] Added some documentaion for how to debug the LG client ------------------------------------------------------------------- Tue May 22 12:18:01 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180522: * [host] use the new memcpySSE implementation * [client] removed unused define in rsa.c * [client] switch to nettle and gmp for RSA EME-OAEP support * [spice] initial GnuTLS implementation (incomplete) * [spice] relocate openssl code into seperate function ------------------------------------------------------------------- Mon May 21 17:25:59 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180522: * [common] fix getopt license to be compatible * [client] use glFinish to prevent buffering and re-enable by default ------------------------------------------------------------------- Mon May 21 12:25:53 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180521: * [module] enable write-through mapping for the device * [module] added 'test' to Makefile to simplify development testing * [client] fixed crash when specifying the shmFile as a command ------------------------------------------------------------------- Sat May 19 21:04:54 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180519: * [common] tune windows memcpySSE asm implementation:wq ------------------------------------------------------------------- Sat May 19 11:24:30 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180519: * [common] inline memcpy into memcpySSE for the final bytes * [common] more SSE improvements * [common] inline get_pc to memcpySSE * [x86] use a proper call/ret to obtain the current IP ------------------------------------------------------------------- Fri May 18 20:49:39 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180518: * [common] new sse2 memcpy improvements * NASM version of a SSE2 memcpy * Incoming new memcpy implementation ------------------------------------------------------------------- Wed May 16 13:06:43 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180516: * [client] allow the mouse and keyboard to operate early * [client] remove dependencies on libva until h264 is ready * [opengl-basic] removed basic renderer as it is no longer needed * [h264] disable the module until I or someone finds time to finish it * [opengl] numerous improvements to buffer transfer ------------------------------------------------------------------- Tue May 15 12:41:44 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180515: * [module] rename defines from LG to KVMFR * [module] added kvmfr kernel module for VM->VM shared memory * [main] make it possible to manually specify the memory size * [opengl] fix free bug with new contiguous buffer * [opengl] use a single contiguous buffer for the AMD pinned buffer * [decoders] change the API to allow more flexability in the future * [opengl] Add support for AMD_pinned_memory if it is available * [spice] fix out by one error in call to strncpy * [opengl] glxWaitVideoSyncSGI is not well supported in Mesa 18 ------------------------------------------------------------------- Mon Feb 05 14:34:17 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180205: * [client] enable configuration of spice via config * [client] cosmetics ------------------------------------------------------------------- Fri Feb 02 11:05:41 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180202: * [client]: ignore Alt-F4 in ignoreQuit mode (#46) ------------------------------------------------------------------- Tue Jan 30 12:25:37 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180130: * [host] mingw-w64 compile fixes (#44) * [client] fix event loop sleep (#45) ------------------------------------------------------------------- Mon Jan 29 17:18:11 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180129: * [client] remoted accidential commit of experimental method from header * [client] fix improper spice socket shutdown * [client] no need to supress bin directory creation command * [client] fix concurrent make, fixes #43 * [client] prevent 100% CPU usage in event loop, fixes #41 * [client] fix SDL mutex compile errors (#42) ------------------------------------------------------------------- Thu Jan 25 11:35:04 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180125: * [client] makefile: use $(CC) instead of assuming gcc * [client] added xlib-shim to disable calls to XSync * [client] spice: add channel and mouse locking * [client] use SDL_SetEventFilter for better mouse performance * Ignore SDL_MOUSEBUTTONDOWN events incompatible with SPICE (#38) ------------------------------------------------------------------- Sat Jan 06 15:07:28 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180106: * [client] h264: unroll silly loop * [client] h264: setup slice parameters correctly (incomplete) * [client] nal: corrections to parsing logic * [client] h264: vaapi deprecated these fields, FMO is not supported ------------------------------------------------------------------- Fri Jan 05 15:00:18 UTC 2018 - pousaduarte@gmail.com - Update to version 10~git20180106: * [client] h264: use parameters from nal (incomplete) * [client] h264: don't treat parse failure as fatal * [client] nal: removed useless debug print * [client] nal: added final SLICE parser features * [client] nal: added SLICE parser * [client] nal: added PPS parser * [client] fixed nal parser memory leaks * [client] Makefile: stop at the first error * [client] added initial NAL unit parser * [host] dxgi: fixed missed header update for timeout fix