going deeper into the abyss
Engine
- LED subsystem reworked: Support hotplug, synthesized LED devices, added support for a
FIFO protocol for communicating with external LED controllers - Accelerated Graphics: refactored to be dynamically (re-)loadable, getting closer to
multi-vendor-multi-GPU support and GPU hotplugging. - Driver backend update: external-launch reloads accelerated graphics library, getting
closer to runtime driver upgrades - Initial HMD/VR support: Early stages, spawn a subprocess for device control and input
fusion/sampling with mapping to a virtual skeleton - Allow direct-to-drain enqueue for out-of-band high-priority events
Tools (src/tools) / Backends (separate repositories)
- waybridge: (new) (alpha state, see wiki wayland notes) wayland protocol service
- xarcan: (new) xserver with shmif driver backend
- qemu: input state- fixes, closer to working multi-display and virgil support
- SDL: improved synchronization, mouse and multi-window support
- vrbridge: (new) basic integration skeleton and partial PSVR support (unusable)
- aclip: (new) clipboard manager for translation between appl- and command-line
- aloadimage: (new) image viewer with parser sandboxing
- shmmon: (new) debugging tool for inspection of shmif- connection dumps or single client
state from scraping proc - openal: patched backend can now be built standalone, back to working state for LWA
Shmif
- New segid subtypes: WIDGET, BRIDGE_X11, BRIDGE_WL, SERVICE
- Two new sub-libraries: shmif_ext (extended accelerated rendering setup convenience) and
shmif_tui (text user interface) - _open_ext added exposing additional initial-registration fields
- Extended connection protocol to include a preroll stage which act as a collection
phase for fonts, outputs, language, etc. in order to cut down on initial setup complexity
and reduce connect-to-draw latency. - added _initial structure that conveys information gathered during the preroll stage
- add VSIGNAL RHINT to support event- based notification on frame delivery for some I/O
multiplexation edge cases - Engine-side reservable misc- buffer added to shmpage layout for specialized I/O devices
that would saturate the event queues when dealing with latency-sensitive high-samplerate
input devices - Negotiable extended mapping for synchronizing gamma/color information
- Negotiable (placeholder/incomplete) extended mapping for supporting HDR source contents
- Negotiable (placeholder/incomplete) extended mapping for vector content transfer
Platform
- egl-dri: backlight support exposed as a LED controller, VT switch stability fixes,
EGLStreams support moved from the egl-nvidia platform, removed egl-nvidia, add switchable
synchronization strategies for fast, adaptive or conservative. - evdev: devices with LEDs now get mapped to a corresponding LED controller.
- agp: exposed more color packing formats.
Terminal
- Tuning to resize/- refresh cpu v latency tradeoffs
- Refactored codebase and split out drawing/shmif- integration etc. into using shmif_tui.
- Minor bugfixes related to color parsing, added blink speed control
Lua
- Deprecated: LED_CONTROLLERS constant
- target- event propagation extended:
- Added functions: hmd_setup, define_arcantarget (LWA only, experimental)
- Updated functions: controller_leds, set_led, set_led_intensity, set_led_rgb,
open_nonblock, audio_gain, video_displaygamma, decode_modifiers,
target_flags, add_3dmesh - Added constants: TARGET_ALLOW(CM,LODEF,HDR,VECTOR,INPUT)
- Added aliases: image_surface, image_surface_storage,
image_surface_resolve (dropped properties suffix) - Updated events: display_state (additional fields for backlight)
input (status: extended label fields, device reference, device domain)
target (expose "bchunkstate", "preroll")
LWA
- partial/incomplete: requesting/rendering to subsegments
(icon, titlebar, popup, ...) via define_arcantarget - improvements to runtime DPI switching and automated resize-response
- runtime server controlled 'default font' and 'default font size' switching