An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
Go to file
Chris Spencer 599fdd6ffd [common] ringbuffer: add unbounded mode
In unbounded mode, the read and write pointers are free to move
independently of one another. This is useful where the input and output
streams are progressing at the same rate on average, and we want to keep
the latency stable in the event than an underrun or overrun occurs.

If an underrun occurs (i.e., there is not enough data in the buffer to
satisfy a read request), the missing values with be filled with zeros. When
the writer catches up, the same number of values will be skipped from the
input.

If an overrun occurs (i.e., there is not enough free space in the buffer to
satisfy a write request), excess values will be discarded. When the reader
catches up, the same number of values will be zeroed in the output.

Unbounded mode is currently unused since our audio input and output
streams are not synchronised. This will be implemented in a later commit.

Also reimplemented as a lock-free queue which is safer for use in audio
device callbacks.
2022-01-27 18:03:11 +11:00
.github [all] ci: libdecor-dev is now libdecor-0-dev 2022-01-04 10:48:13 +11:00
client [common] ringbuffer: add unbounded mode 2022-01-27 18:03:11 +11:00
cmake [all] cmake: fail if wrong submodule version is checked out 2021-12-02 22:08:03 +11:00
common [common] ringbuffer: add unbounded mode 2022-01-27 18:03:11 +11:00
contrib/redhat [meta] Add SELinux policy 2017-12-14 22:22:44 +11:00
doc [doc] build: Add source comment for listing deps 2022-01-20 17:49:35 +11:00
host [host] linux: allow getting system version 2022-01-27 05:47:53 +11:00
module [module] fix compile on 5.16 2022-01-14 12:14:21 +11:00
obs [obs] allow for the larger KVMFR header size now 2022-01-05 21:57:49 +11:00
profile [all] refresh copyright dates 2022-01-05 19:42:46 +11:00
repos [client] spice: update the submodule to fix invalid header errors 2022-01-22 18:23:33 +11:00
resources [res] added LG logo vector graphics 2021-02-21 10:31:48 +11:00
vendor [vendor] directx: add d3d12sdklayers.h 2022-01-17 15:12:54 +11:00
.gitattributes [git] added vcxproj files to crlf exceptions 2017-10-31 20:19:52 +11:00
.gitignore [all] gitignore: ignore __pycache__ and *.py[co] 2021-12-26 09:46:31 +11:00
.gitmodules [repos] added cimgui @ version 1.82 2021-07-17 21:09:51 +10:00
AUTHORS [client] audio/pw: don't discard playback data 2022-01-11 09:45:30 +11:00
CONTRIBUTORS Fixed typo in word wish 2018-05-31 13:28:36 +10:00
gl-check [client] add gl-check script to check GL function calls 2021-10-01 10:12:40 +10:00
LICENSE added licensing to sources 2017-10-31 19:07:16 +11:00
README.md [docs] all: Switch to sphinx-readthedocs-theme 2021-12-26 12:46:23 +11:00
refresh-copyright [host] dxgi: add d3d12.h from latest MinGW 2022-01-10 14:45:51 +11:00
version.cmake [version.cmake] Add reminder to synchronize git-describe with docs/lgrelease.py 2021-12-28 19:18:42 +11:00

Looking Glass

An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.

Documentation

IMPORTANT

This project contains submodules that must be checked out if building from the git repository! If you are not a developer and just want to compile Looking Glass, please download the source archive from the website instead:

https://looking-glass.io/downloads

Source code for the documentation can be found in the /doc directory.

You may view this locally as HTML by running make html with python3-sphinx and python3-sphinx-rtd-theme installed.