Skip to content

Add experimental Linux graphics rendering through Proton - #20

Draft
RomanSlack wants to merge 1 commit into
veedstudio:mainfrom
RomanSlack:linux-proton-renderer
Draft

RomanSlack wants to merge 1 commit into
veedstudio:mainfrom
RomanSlack:linux-proton-renderer

Conversation

@RomanSlack

Copy link
Copy Markdown

Linux x64 is rejected by CLI initialization and there is no published native renderer build. This adds an opt-in launcher for the existing Windows renderer through an installed Steam Proton, with a dedicated Wine prefix and no global installs or changes to the normal platform gate.

The working scope is graphics rendering: text, CSS animation, PNG capture, MP4 export and engine verification. Embedded H.264 video decoding still fails in Media Foundation on the tested setup. The launcher treats logged engine errors as failures even if the engine exits zero, preventing that failure from being reported as a successful render.

Changes:

  • Translate project and output paths without shell interpolation; preserve exit codes and forward termination signals.
  • Use Proton DXVK/vkd3d DLLs and an isolated Wine prefix/cache; require Windows FFmpeg for recording.
  • Include a small animated-text fixture, six launcher tests, setup instructions and an explicit compatibility matrix.
  • Reject render-server stdin jobs and custom safe-zone CLI paths until their path handling is implemented.

Validation on Ubuntu 24.04 x64, NVIDIA RTX 4070 SUPER, Proton Experimental (Wine 10.0), renderer 0.10.2, Windows FFmpeg 9.0.1:

  • Six tests pass with node --test tests/linux-proton-engine.test.mjs.
  • Real PNG capture inspected; actual MP4 decoded as H.264, 320x240, 10 fps, 10 frames, 1 second.
  • First/last frame checks confirm visible text and 108 px of shape motion.
  • --verify and JSON report pass for all 10 fixture frames.
  • An actual failed H.264 source decode is rejected by the launcher despite the engine returning zero.
  • git diff --check passes.

This is a draft compatibility contribution, not a claim of complete Linux support. CLI 0.0.19 still rejects Linux before probing a custom engine; the full gates/caption workflow has not been validated. Native Linux engine builds and reliable media decoding require further upstream work. No renderer or third-party binaries are included.

@gliphraider

Copy link
Copy Markdown

huge thanks for your interest! we're considering multiple approaches for this atm and we'll keep this open until we decide on direction

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants