Skip to content

Add local docker build scripts - #8

Open
granitrocky wants to merge 1 commit into
GameNative:proton_10.0from
granitrocky:docker_build
Open

Add local docker build scripts#8
granitrocky wants to merge 1 commit into
GameNative:proton_10.0from
granitrocky:docker_build

Conversation

@granitrocky

Copy link
Copy Markdown

Bugged if you try to build arm64 and x86 at the same time, but typically you would use this to test on your own device anyway.

Bugged if you try to build arm64 and x86 at the same time, but
typically you would use this to test on your own device anyway.
The412Banner added a commit to The412Banner/proton-wine that referenced this pull request Jul 16, 2026
…id display config) - build GameNative#12

Device A/B (coordinator): mio PLAYS on Proton 11, BAILS on our build GameNative#11 with display-config errors P11
does not have:
  err:system:lock_display_devices Failed to read display config.
  err:system:find_monitor_from_path Failed to find monitor "DISPLAY\Default_Monitor\0001&0000"
  err:winediag:nodrv_CreateWindow "The explorer process failed to start."
mio queries the CCD monitor path, our build can't resolve it -> mio's assertion -> exits before its
render device.

Root cause: build GameNative#8 dropped DISPLAY_DEVICE_PRIMARY_DEVICE from the driver-less fallback source in
default_update_display_devices. That fixed desktop geometry but left the written display config with NO
primary source -> update_display_cache_from_registry() fails -> lock_display_devices 'Failed to read
display config' -> find_monitor_from_path can't resolve the monitor path.

Fix: drop the build-GameNative#8 hunk (primary-flag drop + station-trace instrumentation) from the sysparams
patch, restoring vanilla's default_update_display_devices with PRIMARY intact. This matches Proton
(source_flags = ATTACHED|PRIMARY|VGA, byte-identical) so the config has a primary and reads back
cleanly. Kept the build-GameNative#7 mode-emulation flags (emulate_modeset/modelist default TRUE) which also
match Proton. Note: if desktop geometry regresses, the proper geometry fix is winex11 display-device
enumeration (the real reason the nodrv default is used at all), not the sysparams flag - a separate
follow-up; the config-read (mio blocker) is fixed here.

Keeps XSTATE fixes (GameNative#9+GameNative#11) + all else; esync/fsync + sdk35 deferred. Device boot-test before handoff.
The412Banner pushed a commit to The412Banner/proton-wine that referenced this pull request Aug 22, 2026
Solves case GameNative#8 of following bugzilla entry.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50132
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
The412Banner added a commit to The412Banner/proton-wine that referenced this pull request Aug 22, 2026
…ult display source

Driver-less processes (services.exe/plugplay/wineboot/setup device installers,
interactive station during boot) fall back to default_update_display_devices and
upstream marks the synthetic 1024x768 Default source DISPLAY_DEVICE_PRIMARY_DEVICE,
clobbering the real winex11 primary (container screenSize, e.g. 1280x720) in the
shared display registry. Result: virtual desktop sized to stale 1024x768, shell
desktop does not fill the panel (blue theme wallpaper + black margin).

Drop PRIMARY from the driver-less fallback so the winex11-backed process owns the
primary; keep the source ATTACHED so monitor/device path lookups still resolve. Add
a station-name ERR trace to confirm the offending processes on-device. Re-derives the
device-proven 10.6 build GameNative#8 display-core fix, re-anchored to 11.16 sysparams.c.
The412Banner added a commit to The412Banner/proton-wine that referenced this pull request Aug 22, 2026
…meNative#8 device SIGSEGV)

Build GameNative#8: esync ENGAGED on-device (esync: up and running) but SIGSEGV'd on the first
event — infinite recursion / stack overflow in NtCreateEvent.

ROOT CAUSE: I carried the 10.0-CLASSIC create/open hooks (esync_create_event/semaphore/
mutex + esync_open_*), but the 11.x INPROC esync does NOT hook create/open. The client
create_esync() helper calls NtCreateEvent/Semaphore/Mutant to make the underlying object;
with my create hooks, NtCreateEvent -> esync_create_event -> create_esync -> NtCreateEvent
-> ... stack overflow on the first event at boot.

FIX: match proton_11.0-2's inproc esync hook set exactly — REMOVE the 6 create/open esync
hooks. In the inproc model NtCreateEvent creates a normal server object which the SERVER's
inproc_sync.c esync branch turns into an eventfd esync object; the client only needs the
release/query/set/reset/pulse/wait/signal + close hooks (which operate on the eventfds via
get_inproc_sync_fd). Also ADDED the missing close_inproc_sync -> esync_close hook. Net esync
client hooks now = 12 (close + 10 returns + NtDelayExecution), zero create/open = no recursion.
fsync (13 sites) unchanged.
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.

1 participant