Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,18 @@ jobs:
# mingw-w64-tools -> widl, the IDL compiler vkd3d-proton uses to
# generate its COM headers (Scripts/build_vkd3d_proton.sh
# shims the x86_64-w64-mingw32-widl name onto PATH)
# cmake -> the pinned SDL3 that DXVK compiles against (ubuntu-24.04
# has no libsdl3-dev, so Scripts/build_sdl3.sh builds one)
# and OpenAL Soft
# cmake -> the pinned SDL3 that DXVK compiles against and that we
# ship (ubuntu-24.04 has no libsdl3-dev, so
# Scripts/build_sdl3.sh builds one), and OpenAL Soft
# libx11-dev/... + libwayland-dev/wayland-protocols/libdecor-0-dev/
# libxkbcommon-dev/libegl-dev -> SDL3's X11 and Wayland
# video drivers. Same trap as OpenAL's audio backends: SDL
# compiles a video driver in only when its headers are
# present and dlopens the library at runtime, and cmake
# disables a driver silently when they are not. Without
# these the shipped libSDL3 could not open a window;
# build_sdl3.sh asserts on the generated build config so a
# missing package fails the build instead.
# libpulse-dev/libasound2-dev/libpipewire-0.3-dev -> OpenAL compiles
# a backend in only when its headers are present at build
# time, then dlopens the library at runtime. Without these
Expand All @@ -72,7 +81,11 @@ jobs:
build-essential pkg-config make cmake curl tar git \
nasm patchelf binutils zlib1g-dev \
meson ninja-build glslang-tools libvulkan-dev mingw-w64-tools \
libpulse-dev libasound2-dev libpipewire-0.3-dev
libpulse-dev libasound2-dev libpipewire-0.3-dev \
libx11-dev libxext-dev libxcursor-dev libxi-dev libxfixes-dev \
libxrandr-dev libxrender-dev libxss-dev libxtst-dev \
libwayland-dev wayland-protocols libdecor-0-dev \
libxkbcommon-dev libegl-dev libdrm-dev libgbm-dev

- name: Set up .NET SDK
uses: actions/setup-dotnet@v5
Expand Down
7 changes: 6 additions & 1 deletion Licenses/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ Files in this directory:
OpenAL-Soft-README.txt Build provenance + LGPL relinking notes
OpenAL-Soft-NOTICES.txt BSD-3-Clause and PFFFT notices for the
portions of OpenAL Soft under those terms
SDL3-LICENSE.txt zlib licence covering libSDL3.so (unmodified
upstream SDL3)
SDL3-README.txt Build provenance + replacement notes
EOS-NOTICE.txt Attribution for libEOSSDK-Linux-Shipping.so
(proprietary, Epic Games)

Expand All @@ -29,4 +32,6 @@ text.
The Space Engineers 2 companion archive (se2-dependencies.tar.gz) and the
Steam companion archive (steam-dependencies.tar.gz) carry their own LICENSES
directories, sourced from the se2/ and steam/ subdirectories of the
repository's Licenses/ folder; none of those notices ship here.
repository's Licenses/ folder (plus the DXVK and SDL3 notices above, which
cover binaries shared between the two game archives); none of the
SE2-specific or Steam-specific notices ship here.
18 changes: 18 additions & 0 deletions Licenses/SDL3-LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Copyright (C) 1997-2026 Sam Lantinga <slouken@libsdl.org>

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

56 changes: 56 additions & 0 deletions Licenses/SDL3-README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
SDL3 (Simple DirectMedia Layer)
===============================

The following shared library shipped alongside this notice is SDL 3.4.12:

libSDL3.so (SONAME: libSDL3.so.0)

License
-------
zlib license. See SDL3-LICENSE.txt in this directory for the full text.

The library is unmodified upstream SDL3 — no patches are applied. The only
post-build change to the binary is a patchelf step setting DT_RUNPATH=$ORIGIN,
matching every other library in this archive.

Source code
-----------
The library is built from the upstream release tag:

https://github.com/libsdl-org/SDL @ release-3.4.12

The exact build configuration used to produce the shipped binary is in the
CometWorks/linux-dependencies repository at Scripts/build_sdl3.sh:

https://github.com/CometWorks/linux-dependencies

The cmake options and the post-build patchelf step are reproduced verbatim
there.

Why it is here
--------------
DXVK Native's window-system integration compiles against SDL3 and dlopens
"libSDL3.so.0" at runtime; the shipped libdxvk_*.so therefore have no NEEDED
entry for it. Bundling the same SDL3 the DXVK binaries were compiled against
means the pair is always a matched set, rather than depending on whatever
SDL3 — if any — the host distribution ships.

Video and audio backends
------------------------
X11 and Wayland video support is compiled in (both are required at build time,
so a build cannot silently produce a headless SDL), along with Vulkan surface
support, KMSDRM, and the usual audio backends. Those system libraries are
dlopened at runtime rather than linked, so the shipped binary depends only on
glibc and uses whichever display server and audio stack the host provides.

Replacing it
------------
The library is loaded by file name from the bundle directory. To use your own
SDL3, replace the shipped libSDL3.so with your build, keeping the SONAME
libSDL3.so.0 — that is the name DXVK dlopens, and it is what makes the
preloaded file satisfy the request.

Copyright
---------
SDL is copyright (c) 1997-2026 Sam Lantinga and the SDL contributors.
See https://libsdl.org/ for details.
7 changes: 6 additions & 1 deletion Licenses/se2/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Files in this directory:
from upstream DXVK plus the patch series
published under Patches/dxvk/ in the
CometWorks/linux-dependencies repository)
SDL3-LICENSE.txt zlib licence covering libSDL3.so
(unmodified upstream SDL3, dlopened by
DXVK's window-system integration)
SDL3-README.txt Build provenance + replacement notes
VKD3D-LGPL-2.1.txt LGPL-2.1 text covering
libvkd3d-proton-d3d12*.so
vkd3d-proton-README.txt Build provenance + LGPL relinking notes
Expand All @@ -22,4 +26,5 @@ Files in this directory:

This is the SE2 companion archive (se2-dependencies.tar.gz). The
Space Engineers 1 libraries and their licences ship separately in
se1-dependencies.tar.gz; the patched DXVK binaries are identical in both.
se1-dependencies.tar.gz; the patched DXVK binaries and libSDL3.so are
identical in both.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ their own archive, consumed alongside either game archive.
| --- | --- | --- |
| FFmpeg (`libavcodec`, `libavformat`, `libavutil`, `libswresample`, `libswscale`) | 8.1 | LGPL-2.1-or-later |
| DXVK Native (`libdxvk_d3d11.so`, `libdxvk_dxgi.so`) + [Patches/dxvk/](Patches/dxvk/) | 2.7.1 | zlib |
| SDL3 (`libSDL3.so`) — dlopened by DXVK's window-system integration | 3.4.12 | zlib |
| OpenAL Soft (`libopenal.so`) | 1.25.2 | LGPL-2.0-or-later |
| `libEOSSDK-Linux-Shipping.so` | vendor blob | proprietary (Epic) |

Expand All @@ -28,6 +29,7 @@ their own archive, consumed alongside either game archive.
| Artefact | Version | Licence |
| --- | --- | --- |
| DXVK Native — same patched build as above | 2.7.1 | zlib |
| SDL3 — same build as above | 3.4.12 | zlib |
| vkd3d-proton (`libvkd3d-proton-d3d12.so`, `libvkd3d-proton-d3d12core.so`) + [Patches/vkd3d-proton/](Patches/vkd3d-proton/) | pinned commit | LGPL-2.1 |
| FMOD Engine (`libfmod.so`, `libfmodstudio.so`) | 2.03.11, matching the game | proprietary (Firelight) |

Expand Down
Loading