Skip to content

Evaluate and source-port Lukas minimal-xbl runtime path #1

Description

@veedy-dev

Decision

Do not replace the current engine tree with LukasPAH/WineGDK:minimal-xbl wholesale.

The branch is 14 commits ahead but 95 commits behind the WineGDK source commit used as this repository's base, while this repository also contains later MCBE-specific XUser, XStore, networking, task-queue, provenance, graphics, and failure-hardening work. A wholesale merge would discard reviewed fixes and likely regress supported features.

The useful direction is a narrow, source-level port followed by controlled benchmarking.

External release audit

Reviewed asset:

  • repository: LukasPAH/GDK-Proton-Custom
  • tag: release-10-32-4
  • asset: GDK-Proton10-32-Custom-4.tar.gz
  • GitHub digest: sha256:4d19774c64451d4f1395dc4c5f4b6e8b5fdbc1ce6c05e29a855f5e0678b8800c

The release repository contains only a short README and published binaries. It does not provide this repository's source manifest, pinned build workflow, critical-file hashes, or reproducible provenance. The release notes also state that Parties and Realms are currently unsupported.

Candidate source port

  • Port remote-connect event handling into this source tree without replacing the existing XUser/XSAPI implementation.
  • Use an installer-provided, pre-created 0600 request path rather than a relative ../login.json created by the Windows process.
  • Bound and JSON-escape the URL/code; never use unchecked strcat or a payload as the fprintf format string.
  • Never emit the device code through Wine TRACE/FIXME logging.
  • Clear/truncate the request when the prompt closes and after the launcher consumes it.
  • Use Software\\Microsoft\\GamingServices\\IgnoreVersionMismatch for the compatibility override instead of binary-patching an immediate value in xgameruntime.dll.
  • Review the two CoreInputView output-write removals independently; returning S_OK with an uninitialised out parameter is not automatically safer.
  • Do not import the current XGameSave stubs as-is: some entry points return S_OK without producing the required provider/async result.
  • Preserve current source/build provenance and regenerate SOURCE-SHA256SUMS and engine manifest metadata.

Benchmark plan

Run the current v0.1.9, the exact Lukas release-10-32-4 asset, and the source-port candidate on the same machine, game build, server/world, kernel, graphics driver, launcher environment, render distance, VSync mode, and cache state.

Collect at least five cold and five warm runs per engine:

  • launch-to-title and sign-in time
  • server-list and server-join time
  • median and p95 frame time
  • client CPU and memory use
  • server MSPT/tick-time statistics over a fixed workload
  • stutter/hitch counts during chunk loading

Verify feature behavior separately: offline play, external/featured servers, account switch, sign-out, package update, game update, Realms, Parties, and world preservation.

Acceptance gate

Adopt the source port only if the measured latency/server-time improvement is repeatable and it does not regress the supported feature matrix. Until then, the exact Lukas asset should remain an explicitly experimental installer option rather than the default engine.

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions