mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-10 09:11:31 +00:00
ff665c2031f0ed64f7f9ff114cea4d1c3fbc7446
We can not support 32-bit because Windows is buggy: The exact Windows 11 mmsys.cpl from build 26100.8737 populates Speaker Setup testing against hard-coded speaker masks and for each calls IKsFormatSupport::IsFormatSupported() using 24 hard-coded PCM formats. These formats do not include 32-bit in 32-bit, consequently, every one of the wizard’s format probes fails and it inserts zero channel-list entries. It does however test for 24-bit in 32-bit which passes, however this exposes another breakage due to an inconsistency inside Windows usbaudio2.sys For bSubslotSize = 4, bBitResolution = 24, Windows does this: 1. It publishes a KS range whose minimum and maximum bit depths are both taken from bBitResolution, so the range says 24-bit. 2. It correctly constructs the actual stream format as: wBitsPerSample = 32, wValidBitsPerSample = 24 3. KS range intersection rejects that 24-in-32 format because its container is 32 bits while the published range says 24. 4. A packed 24-bit candidate passes range intersection, but the subsequent exact stream check rejects it because it uses a three-byte container while USB advertises four bytes. Therefore no format can pass both checks. That exactly explains: * USB Device Tree Viewer seeing 24-bit device ranges. * The MMDevice endpoint exposing no usable formats. * Windows being unable to start playback. I verified this in the exact Windows 10.0.26100.8737 driver: * KSPin::AddDataRange stores bBitResolution into both KS bit-depth bounds. * MiniportWave::DataRangeIntersection tests those bounds. * WaveFormatInfo::IsMatchingStreamFormat separately compares both the container width and valid-bit count.
Looking Glass
An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
- Project Website: https://looking-glass.io
- Documentation: https://looking-glass.io/docs
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.
Languages
C
76.8%
C++
20.3%
CMake
1.6%
NSIS
0.6%
GLSL
0.5%
Other
0.2%