Skip to content

going deeper into the abyss

Compare
Choose a tag to compare
@letoram letoram released this 29 May 14:26
· 1926 commits to master since this release

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