Skip to content

v0.7.2

Latest
Compare
Choose a tag to compare
@ikeydoherty ikeydoherty released this 19 Dec 15:37
· 12 commits to master since this release

The v0.7.2 release of LSI has many new cool fixes and features, including:

  • Initial snapd support
  • New Unity "black screen of nope" workaround
  • New lsi-exec general-purpose binary
  • Massively enhanced shim
  • And loads more :) Read the changelog! :P

screenshot from 2017-12-19 14-26-02

intercept changes:

  • Support openal-soft -> openal soname rewrite
  • Blacklist vendoring of mpg123, freetype, zlib
  • Modify SDL vendor blacklisting/transmute rules to apply to well known names only
  • Rewrite libcurl.so.3 to libcurl.so.4
  • Support Fedora libbz2 soname transmute
  • Rewrite libudev.so.0 to libudev.so.1
  • Permit html5_app to load widevine modules for encrypted content playback
  • Permit swiftshader for CPU based GL acceleration on slower cards in Steam client
  • Fix vendoring rules for libstdc++.so.6 to apply to games on separate Steam Libraries (partitions) so that Black Mesa launches again.

shim changes:

It also features a new generic lsi-exec entry point. This entry point is used by the main steam (or lsi-steam) binary, and can be used to execute any given program under the LSI environment. This is useful for debugging. Future versions will add support for some GOG titles (ongoing).

  • Add support for XDG specification (XDG_CONFIG_HOME, etc)
  • Reworked environment bootstrap to be robust and respect existing LD_PRELOAD variables, allowing Simple Screen Recorders glinject to work.
  • Export DBUS_SILENCE_WARNINGS for patched d-bus to fix message spam (only useful with this non-upstream patch or using the LSI snap)

redirect changes:

The redirect module now has a new workaround for the "Unity Black Screen Of Nope" issue. This issue is known in older Unity3D builds where the output renderer is clamped to 0x0 resolution when in fullscreen borderless mode. Many games default to this, hence the expression "black screen of nope".

To alleviate this issue, the redirect module emulates the behaviour of the -screen-fullscreen 0 CLI argument. The $XDG_CONFIG_HOME/unity3d/*/prefs file is abstracted through SHM (shm_open) and we rewrite the config on save/launch, writing an initial config if one doesn't exist.

Specifically, we change a single preference on the fly:

<pref name="Screenmanager Is Fullscreen mode" type="int">0</pref>

This means all Unity3D games using this older prefs path will default to launching as a windowed game, even if the configuration already existed with fullscreen being activated. This alleviates the issue for many games (tested with "Keep Talking And Nobody Explodes" and others) - but obviously forces these games to not know about the fullscreen setting anymore. You can enable this again in-game, and this is effectively the price to pay for general compatibility. The game authors can alleviate this by updating to the latest build of Unity3D and issuing new Linux builds. You may also turn off this option through the lsi-settings UI if you do not have any games that suffer from this common bug.

snapd support:

The new shim architecture shared by the lsi-exec and steam/lsi-steam binary entry points now has support for running within snapd, within the solus-runtime-gaming and linux-steam-integration snaps.

  • Support full environment bootstrap, and construction of XDG directories
  • Snap environment pivots home to $SNAP_USER_COMMON for more efficient/sane update paths
  • Supports vdpau from host NVIDIA files dynamically
  • Support proprietary NVIDIA drivers from host dynamically (/var/lib/snapd/lib/gl and /var/lib/snapd/lib/gl32)
  • Support host (and runtime) Vulakan ICD files dynamically (/var/lib/snapd/lib/vulkan)

Upstream snapd work:

The following changes have happened upstream to allow support for LSI:

General support for biarch distros/Solus as a runtime snap:

LSI Specific: