5099 Commits
Author SHA1 Message Date
maxjivi05 540d3df797 DroidDeck-Proton 11-12.3: winex11 reports focused text fields to DroidDeck DroidDeck-Proton-11-12.3 2026-11-06 11:05:03 -05:00
maxjivi05 e9f80a5e32 wine: winex11 reports the focused window's input context to DroidDeck
Programs on X11 (gamescope sessions) never told DroidDeck when a text field took focus: winex11 had no EnableIMEContext. The pending patch writes the focused window's state to agent/wine-ime.json under BL_LAUNCH_DIR, the way winewayland already enables text input. Proven on World of Warcraft: Forever, whose chat box and search field associate an input context on focus and remove it on Esc or Enter.
2026-11-06 10:08:50 -05:00
maxjivi05 eed1e3a5ac PROGRESS_LOG: 11-12.2 released on the org (Latest), auto update proven 2026-11-06 08:46:42 -05:00
maxjivi05 61b60d0f6c DroidDeck-Proton 11-12.2: ARM64X import thunk fix release DroidDeck-Proton-11-12.2 2026-11-06 08:04:38 -05:00
maxjivi05 f753e8d9ef docs: ARM64X thunk fix results on the CI build 2026-11-06 06:12:55 -05:00
maxjivi05 58b9af9568 wine: ARM64EC calls into the hotpatched import thunks still skip the emulator 2026-11-06 04:39:56 -05:00
maxjivi05 d973505016 wine: Carry the ARM64X import thunk fix as a pending patch on the usual wine source 2026-11-06 04:23:20 -05:00
maxjivi05 5d84d0ea91 wine: Keep ARM64X import thunks at the end of a section whole after strip 2026-11-06 01:11:11 -05:00
maxjivi05 269ca79593 wine: ARM64X import thunks get the x86_64 hotpatch prologue (test build)
Pins wine to 1806c211ff on maxjivi05/proton-wine
droiddeck/arm64x-import-thunk-hotpatch, on top of banner-proton/11.12
303894db: winebuild gives the x64 view's import thunks the same
lea rsp,[rsp+0]; jmp [iat] shape as x86_64, so code that inspects export
prologues no longer sees 2993 hook-shaped exports across 34 DLLs.

The fork pin is for the test build only.
2026-11-06 00:12:21 -05:00
The412Banner fbae0a3fc1 PROGRESS_LOG: 11-12.1 released on the org (Latest) 2026-11-03 20:33:37 +00:00
The412Banner 96977534e4 PROGRESS_LOG: 11-12.1 merge to main and Latest release (user's go) DroidDeck-Proton-11-12.1 2026-11-03 18:39:14 +00:00
The412Banner 5b5fe4d21c DroidDeck-Proton 11-12.1: README for the release 2026-11-03 18:39:02 +00:00
The412Banner c1c7cce475 PROGRESS_LOG: 11-12.1 device test 2 (DOOM reached the intro, stopped by user; log clean) 2026-11-03 18:11:14 +00:00
The412Banner 6ea76910dd PROGRESS_LOG: 11-12.1 next test DOOM (2016) 2026-11-03 18:05:42 +00:00
The412Banner 23d455d3b7 PROGRESS_LOG: 11-12.1 DiRT Showdown controller works (user) 2026-11-03 18:02:24 +00:00
The412Banner 34ff14ca66 PROGRESS_LOG: 11-12.1 device test 1 (DiRT Showdown: esync up, DirectInput thread fault to compare with 11-11.11) 2026-11-03 17:21:59 +00:00
The412Banner 7a747c0058 PROGRESS_LOG: 11-12.1 installed on the Pocket FIT (not game-tested) 2026-11-03 17:14:50 +00:00
The412Banner 8413cc107f PROGRESS_LOG: 11-12.1 CI green (run 3), install plan 2026-11-03 17:03:32 +00:00
The412Banner 058df6bae8 PROGRESS_LOG: 11-12.1 name (user's call), Components esync pack built 2026-11-03 16:32:00 +00:00
The412Banner b11a3afc79 DroidDeck-Proton 11-12.1: name the device test build
User's call (2026-11-03): the GE-Proton11-12 build is tested as 11-12.1 so it sits next to 11-11.11 in Steam, instead of keeping 11-11.11 until the release cut.
2026-11-03 16:32:00 +00:00
The412Banner 7c3a365966 PROGRESS_LOG: 11-12 CI run 1 (tier 2 verified, prep failed on an already-applied GE patch), fix 2026-11-03 15:57:43 +00:00
The412Banner 2d192f0f84 prep: skip a GE patch that is already in the tree instead of failing
GE-Proton11-12 adds patches/protonfixes/0003 (Kingdoms of Amalur:
Re-Reckoning) and bumps protonfixes to 28a02c25, which already has both
files of that patch (gamefixes-steam/1041720.py identical, the umu
symlink the same blob 0d5bfe55). patch skips the existing files and
exits 1; GE's CI ignores that, prep.sh failed the build (run
41667555200, all four groups).

apply_patch now checks first whether the patch reverses cleanly and
skips it with "already in the tree, skipped: ..."; any other failure
still stops the build. Checked locally on protonfixes 28a02c25 (0001 and
0002 apply, 0003 skipped) and on the rest of the prep section after it
(wineopenxr, low_latency_layer, discordrpc, lsteamclient, vrclient: all
apply, none skipped).
2026-11-03 15:57:43 +00:00
The412Banner 1520c23abf PROGRESS_LOG: 11-12 rebase on rebase/11-12 (CI pending, not device-tested) 2026-11-03 15:47:04 +00:00
The412Banner 028c2a8c0b Merge PR #9 (K11MCH1/fex-load-fixes): FEX: keep translated code on empty reads and off Wine's memory lock
Kimchi's FEX 0013 and rpmalloc 0001, taken into the 11-12 build (user's call). Both apply on GE-Proton11-12's FEX 02e24ca5 after 0001-0012 (0013 with -28 line offsets); FEX's rpmalloc pin ed227446 is unchanged.
2026-11-03 15:46:00 +00:00
The412Banner 0e86e5c0cd 11-12: wine banner-proton/11.12 on GE-Proton11-12 and Valve fda79a58
wine: The412Banner/proton-wine banner-proton/11.12 (303894db), tags
bp-11.12-tier1..7:
- tier 1: Valve bleeding-edge fda79a58 (GE-Proton11-12's pin).
- tier 2: this branch's protonprep wine section (GE-Proton11-12,
  unmodified) run on tier 1, one commit per section, 0 failed patches.
- tier 3: the 20 CachyOS commits of 11.11 unchanged, plus winebus.sys
  b3795230 and hidclass.sys 447acb9a from the unreleased CachyOS
  cachyos_11.0_20261014/dev. setupapi 598410aa is not taken (GE carries
  the same author's full implementation, proton-ds5-haptic/0102).
- tiers 4, 6, 7 and the two offscreen-check cache commits: cherry-picked
  unchanged (range-diff against 11.11: identical).
- tier 5 (droiddeck-esync): ported to GE's
  server-keep-in-process-mutex-closed-while-in-use (GE 6161ec53).
- No wineserver protocol change after tier 4 (WINE_PROTOCOL_BASE moves
  there); tools/make_requests gives the committed headers.

patches/wine-hotfixes/pending/ntdll-i386-recover-lost-wake-on-address.patch:
hunk 3 rebased onto GE's newer stale-alert fix (960acd0a); the other six
deferred Wine patches apply unchanged, and all twelve FEX patches apply
on FEX-2610-116.

PINS, .gitmodules and README follow. VERSION stays 11-11.11 until the
release is cut.
2026-11-03 15:45:38 +00:00
The412Banner ef7f031388 Merge GE-Proton11-12 (f85547f0) into rebase/11-12
GE-Proton11-12 now carries the three GE master commits 11-11.1 took early,
so our copies go:
- patches/protonprep-valve-staging.sh: GE's version (our two added
  apply lines for 98efe1cd and e15b1e15 are GE's own now).
- ntdll-take-in-flight-alert-when-wait-on-address-times-out.patch: GE's
  newer version (960acd0a, with its test).
- winewayland-advertise-openvr-openxr-device-extensions.patch and
  lsteamclient 0017: identical to GE's, merged without a change.

README.md: ours (updated for 11-12 in a later commit).
wine: still banner-proton/11.11 here; moved to banner-proton/11.12 in a
later commit.
2026-11-03 15:25:52 +00:00
GloriousEggroll f85547f0ea GE-Proton11-12 Released 2026-11-02 23:19:11 -07:00
GloriousEggrollandClaude Opus 5.5 739b9ff609 build: tag dxvk, d7vk and vkd3d-proton versions built from patched trees
Append "-GE-Proton(dirty)" to the version string of DXVK, D7VK and
vkd3d-proton whenever their tree has local changes, i.e. carries our
patches. It shows up in their logs (DXVK/D7VK info line, HUD) so their
developers can tell from a bug report that the build isn't upstream.

DXVK and D7VK used describe --dirty=0, which only appended an easily
missed '0'. For vkd3d-proton the tag goes before the existing '+', which
its dirty-tree check reads; vkd3d_build stays a plain hex value. A
small vkd3d-proton patch also prints the version string on its INFO
build line for dirty builds, since it otherwise only shows the hash.

Detection uses git status --porcelain, so patches that only add files
count too. Clean trees keep their plain upstream version.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 22:48:10 -07:00
GloriousEggroll 58ce172b53 protonfixes: bump protonfixes 2026-11-02 22:37:21 -07:00
GloriousEggrollandClaude Opus 5.5 de391671f6 protonfixes: add a gamefix for Kingdoms of Amalur: Re-Reckoning
Install d3dcompiler_43 and d3dcompiler_47, which the reporter found
fixes flickering textures and character models (GOG via Heroic). Add it
as gamefixes-steam/1041720.py with the usual gamefixes-umu symlink,
which the database's GOG, EGS and standalone entries map to.

https://github.com/Open-Wine-Components/umu-database/issues/159

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 22:30:39 -07:00
GloriousEggrollandClaude Opus 5.5 c415c2ffb3 patches: lsteamclient: refresh ReleaseRequest tracking for upstream's magic check
Upstream ca9e1047 now validates ISteamMatchmaking request handles with a
magic number and allocates them with calloc(). Regenerate 0018 against
it so it applies without fuzz; the patched result is unchanged.

The tracking is still needed on top of the magic check: two threads
releasing the same request at once can both pass the magic check before
either frees it, while only one can remove it from the locked list.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 22:12:48 -07:00
Paul Gofman b6a0a23d8c lsteamclient: Check validity of ISteamMatchmaking request handles using magic number.
And change HeapAlloc to malloc on the way.

CW-Bug-Id: #27925
(cherry picked from commit ca9e10478f00e4e863e6c53d311f549bcc49f045)
2026-11-02 22:10:12 -07:00
Esme Povirk b5f9afb0e1 Update Xalia to 0.5.0.1.
CW-Bug-Id: #27873
(cherry picked from commit f162b993dff40fbf046f830f1e22f0ad3631b699)
2026-11-02 22:10:12 -07:00
Paul Gofman 484c95bdd0 wineopenxr: Map VK_FORMAT_X8_D24_UNORM_PACK32 Vulkan format.
(cherry picked from commit 5b1cb268c2068bdac77d63a2757e7bae557dbd3c)
2026-11-02 22:10:12 -07:00
Paul Gofman 32c9d8b39a wineopenxr: Initial support for D3D app consumed swapchains.
(cherry picked from commit 8510f0a55d5a2afea1c4b6899563f0c8b172c5fc)
2026-11-02 22:10:12 -07:00
Paul Gofman 0da4b70727 wineopenxr: Implement dxgi format conversion for xrEnumerateSwapchainFormats2EXT().
(cherry picked from commit 56e0651683faec73977da3512fe338376a83e6c4)
2026-11-02 22:10:12 -07:00
Paul Gofman 9b8b8e7ee6 wineopenxr: Update to 1.1.65 registry version.
(cherry picked from commit 82fed0bda81bb663634493ee4655c3320b86918d)
2026-11-02 22:10:12 -07:00
Paul Gofman 671ea7a30f wineopenxr: Set size properly when reading device vid / pid from registry.
(cherry picked from commit 7c6fa2faa9146f4b96cec6114acaee73bb37835a)
2026-11-02 22:10:12 -07:00
Paul Gofman 1e5f0cf58f lsteamclient: Set '\' in path part inside game install dir for ISteamApps::GetFileDetails().
CW-Bug-Id: #27895
(cherry picked from commit a0c7261f244ebb961259ecc8e25b7d89f039eb19)
2026-11-02 22:10:12 -07:00
Paul Gofman 5471a609e6 lsteamclient: Try to resolve real path in steamclient_dos_to_unix_path().
CW-Bug-Id: #27895
(cherry picked from commit 08217187e66780558e6ea5a223058dff4042960b)
2026-11-02 22:10:12 -07:00
Paul Gofman 420fa46143 wineopenxr: Return correct string lengths from xrGetVulkanInstanceExtensionsKHR() / xrGetVulkanDeviceExtensionsKHR().
CW-Bug-Id: #27893
(cherry picked from commit aab784b35d6d7b6825428041ad6e97ed90873fd3)
2026-11-02 22:10:12 -07:00
Paul Gofman 3f9e0e0a17 proton: Disable nvapi if NV driver cannot be found in /proc/modules.
CW-Bug-Id: #27872
(cherry picked from commit f413b3faaf51f316d1109a1598283dcd06eb8674)
2026-11-02 22:10:12 -07:00
Jason Eggleston 802bb248b5 patches: ntdll: don't keep the reply pipe's write end open during thread init
A thread that is killed after it has sent its init_thread request, but
before the server has read it, never gets a reply and never sees
end-of-file either: since Wine 6.2 (44699c324f2) it keeps the write end
of its own reply pipe open until the request returns. It stays blocked
for the life of the process, with 5 pipe fds and its stacks, and a
thread killed just before it sends the request exits but leaks that
write end. Helldivers 2's anti-tamper code creates suspended threads
and kills them right away, several times a second, so these threads and
fds pile up during a session (ValveSoftware/Proton#7486).

The patch closes the write end as soon as it has been sent to the
server, as Wine did before 6.2. Upstream Wine has the same code.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
(cherry picked from commit 8b38666d9fc89b3b02d6a079ff232547170942b1)
2026-11-02 21:58:40 -07:00
GloriousEggrollandClaude Opus 5.5 b4a960c1b3 proton: use Valve's prefix version instead of the GE build name
CURRENT_PREFIX_VERSION was the GE build name (GE-Proton11-11), which
upstream Proton can't parse when a prefix is later run with it, and
whose release number has nothing to do with Valve's prefix revision
that upgrade_pfx() steps are gated on. Use Valve's value (11.0-100),
so prefixes we write work with upstream Proton and Valve's migrations
apply with Valve's numbers. Release commits no longer need to bump it.

Older GE prefixes are still parsed by upgrade_pfx() (GE-ProtonX-Y as
X.0-Y), so they upgrade normally. Builtin DLLs are still refreshed on
each GE update, since prefix_info includes the install's lib_dir and
default_pfx timestamp.

Log the GE build in the "Upgrading prefix" line, and have the
protonfixes debug output show the build and the prefix version
separately.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 21:47:46 -07:00
GloriousEggrollandClaude Opus 5.5 e301e55e5e dsound: keep the high quality resampler for any number of buffers
Staging's dsound-Fast_Mixer moves every resampled buffer to a linear
resampler once more than 4 buffers exist, and that path ignores the
committed region the other mixing paths read. Liarsoft's codeX RScript
games reach 5 buffers and their BGM crackles after voice lines on a
48 kHz device. Default the limit to INT_MAX, like upstream Wine's
behavior; HQBuffersMax in the registry can still lower it.

https://github.com/GloriousEggroll/proton-ge-custom/issues/521

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 21:42:41 -07:00
GloriousEggrollandClaude Opus 5.5 83baaaccba proton: disable the automatic Sony XInput fallback for Where Winds Meet
Where Winds Meet supports the DualSense natively, but with the automatic
fallback its touchpad stops working when the controller is plugged in
after the game has started, until it is replugged. The reporter
confirmed PROTON_SONY_AUTO_XINPUT=0 fixes it whether the controller is
connected before or after launch.

https://github.com/GloriousEggroll/proton-ge-custom/issues/829

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 21:26:03 -07:00
GloriousEggrollandClaude Opus 5.5 5fc8c41cb6 dxvk: only disable StarCraft II constant buffer streaming on Navi 10
The SC2 application profile forced d3d9.deviceLocalConstantBuffers=False
on every GPU to avoid a GPU hang on an RX 5700 XT (#790). On an RX 7900
GRE that setting makes the game freeze in coop, reproducibly, while Auto
does not (#845).

Replace the profile with a default in D3D9Options that applies only to
SC2.exe/SC2_x64.exe on AMD Navi 10 device IDs, and only while the option
is Auto.

https://github.com/GloriousEggroll/proton-ge-custom/issues/845

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 21:17:15 -07:00
GloriousEggrollandClaude Opus 5.5 cc844aa75b proton: use Darktide's native AGS without amdxc64 on AMD-only systems
Warhammer 40,000: Darktide only offers FSR 4.1.1 on RDNA3 with its own
amd_ags_x64.dll and without our amdxc64 FSR4 provider. The reporter
confirmed that neither change alone is enough, and PROTON_FSR4_UPGRADE
doesn't bring it back either.

Default to both for the game, only when every DRM device is AMD, since
native AGS relies on Wine's builtin ADL. PROTON_NATIVE_AGS=0, an amdxc64
entry in WINEDLLOVERRIDES, or the FSR4 upgrade option opt out.

https://github.com/GloriousEggroll/proton-ge-custom/issues/869

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:53:07 -07:00
GloriousEggrollandClaude Opus 5.5 ce40c340cc rtworkq: don't hold queues_section while shutting down the system queues
MFShutdown() held queues_section while waiting for pool callbacks, and a
source reader callback unlocking its user queue waited for the same
lock, hanging the Kingdom Hearts 358/2 Days port after its first
cutscene. Shut the system queues down outside the lock, like
unlock_user_queue() already does for user queues.

https://github.com/GloriousEggroll/proton-ge-custom/issues/899

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:29:51 -07:00
GloriousEggrollandClaude Opus 5.5 2aab9cfd2e ddraw: fix the Godfather overlay trace format for POINT coordinates
POINT.x and .y are LONG, so printing them with %d breaks the build with
-Werror=format on both x86_64 and i386.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 18:30:42 -07:00