From 266db8dd8b6b8b8ec6bb49e3f6d87700e98399d6 Mon Sep 17 00:00:00 2001 From: romanslack Date: Tue, 8 Sep 2026 17:30:03 -0600 Subject: [PATCH] Add experimental Linux graphics launcher using Proton --- docs/linux-proton.md | 129 ++++++++++++++++++++++ pipeline/scripts/linux-proton-engine.mjs | 115 +++++++++++++++++++ tests/fixtures/linux-proton/manifest.json | 3 + tests/fixtures/linux-proton/template.wv | 8 ++ tests/linux-proton-engine.test.mjs | 52 +++++++++ 5 files changed, 307 insertions(+) create mode 100644 docs/linux-proton.md create mode 100755 pipeline/scripts/linux-proton-engine.mjs create mode 100644 tests/fixtures/linux-proton/manifest.json create mode 100644 tests/fixtures/linux-proton/template.wv create mode 100644 tests/linux-proton-engine.test.mjs diff --git a/docs/linux-proton.md b/docs/linux-proton.md new file mode 100644 index 0000000..c442e6e --- /dev/null +++ b/docs/linux-proton.md @@ -0,0 +1,129 @@ +# Experimental Linux graphics rendering through Proton + +The Windows renderer can render text and CSS animation on Linux x64 through +Proton's DXVK and vkd3d-proton libraries. This is an opt-in compatibility +experiment, not native Linux support or a complete Open Edit installation. + +`pipeline/scripts/linux-proton-engine.mjs` launches an already-downloaded Windows +engine using an already-installed Proton. It translates project/output paths, +uses a dedicated Wine prefix, forwards the engine's output and exit status, and +fails if the engine logs errors despite exiting zero. It installs nothing. + +## Tested scope + +Tested on Ubuntu 24.04 x64, NVIDIA RTX 4070 SUPER (driver 580.173.2), an active X +display, Steam Proton Experimental (Wine 10.0, DXVK 2.7.1 development build, +vkd3d-proton 3.0.0), renderer 0.10.2 and Windows FFmpeg 9.0.1: + +| Check | Result | +| --- | --- | +| Renderer `--version` and `--help` | Pass | +| PNG capture of CSS shapes | Pass; pixels inspected | +| Text and animated CSS shape to H.264 MP4 | Pass; 320×240, 10 frames, 10 fps, 1 second | +| First/last decoded frames | Text visible; shape moves | +| `--verify` plus JSON report | Pass, all 10 frames | +| Embedded H.264 `