diff options
| author | Tomasz Kramkowski <tomasz@kramkow.ski> | 2026-11-03 20:01:42 +0000 |
|---|---|---|
| committer | Tomasz Kramkowski <tomasz@kramkow.ski> | 2026-11-03 20:01:42 +0000 |
| commit | 098bd37f355a77abbb5751fc55a91f7ebe74cc6b (patch) | |
| tree | d3bc93cb427276a4936d79903b62e156d5c538e7 /steamvr/patches.toml | |
| parent | 64c349eb1dc0fde65fd4e6ddf525faa0a4c64a91 (diff) | |
| download | steamvr-patches-098bd37f355a77abbb5751fc55a91f7ebe74cc6b.tar.gz steamvr-patches-098bd37f355a77abbb5751fc55a91f7ebe74cc6b.tar.xz steamvr-patches-098bd37f355a77abbb5751fc55a91f7ebe74cc6b.zip | |
use patch generator to build patchers
Diffstat (limited to 'steamvr/patches.toml')
| -rw-r--r-- | steamvr/patches.toml | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/steamvr/patches.toml b/steamvr/patches.toml new file mode 100644 index 0000000..a4e618e --- /dev/null +++ b/steamvr/patches.toml @@ -0,0 +1,82 @@ +# SPDX-FileCopyrightText: 2026 Tomasz Kramkowski <tomasz@kramkow.ski> +# SPDX-License-Identifier: CC0-1.0 + +target = "Beta 2.19.1, build 26389675" + +[[targets]] +path = "bin/linux64/vrcompositor" +sha256 = "4c380adc27832db9afaf83e446080354338bcb4c96f0f0cc561c90cd4d79168f" +edits = [ + # Wait for GPU to finish using its resources (see #952) + [0x404941, "84c00f842f570000eb06"], + [0x404951, "488dbbe00d0000e90a570000"], + [0x40a05b, "e830db0600"], + [0x40a060, "e9dca8ffff9090"], + # Stop reusing GPU work identifier across frames (allows above patch to + # work reliably) + [0x41d224, "31c09090909090"], + [0x41db39, "31c09090909090"], + [0x41db74, "909090909090"], + # Fix shader descriptor texture array counts (should be 3, not 1) for + # bindings 9, 17, and 20. Affected shaders: + # - distort_none_ps + # - distort_none_ps_layered + # - distort_panorama_ps + # - distort_panorama_solid_color_ps + # - distort_ps_achromatic_nd + [0x404961, "498b5500b80300000089424ceb22"], + [0x404991, "89828c0000008982a4000000eb12"], + [0x4049b1, "4c8bbd18feffffe902200100"], + [0x4169b8, "e9a4dffeff9090"], +] +[targets.compiled] +sources = ["image-wait/trampoline.S", "image-wait/image_wait.c"] +imports = { append_wait = 0x465dd0, resume_transition = 0x40e9d7 } +hooks = [ + # Make the compositor wait for frames submitted by the application to + # complete rendering before trying to encode them etc. (#1046) + { address = 0x40e9d0, length = 7, target = "input_wait" }, +] + +[[targets]] +path = "bin/linux64/vrserver" +sha256 = "a7c9246f8fe36749caa0bfe3984efbb5fa7dbbb28e5263a5c1744f5ba6b0c10b" +edits = [ + # Remove logger calls in forked processes (can cause a deadlock and make + # the process linger preventing SteamVR from starting again) + [0x2c1386, "9090909090"], + [0x2c1577, "9090909090"], + [0x2c160c, "9090909090"], + [0x2c1726, "9090909090"], + [0x2c17ff, "9090909090"], + [0x2c1699, "9090909090"], +] + +[[targets]] +path = "drivers/vrlink/bin/linux64/driver_vrlink.so" +sha256 = "a33d1da2d1c9851a61e19b87ffc89bbbb6e8b1e503e189e3e19bccd2e6cd3b7f" +edits = [ + # Keep increasing (mod(2^16)) the ACK cutoff instead of clearing it (#965) + [0xd91dd, "89836c0d000090909090"], + # Wait for encoder to finish before reconfiguring it + # (ulVideoTimeline == ulTimelineSequence) (#965) + [0x13c2d2, "83bb4c090000007458e9702c0000"], + [0x13c333, "488b8328090000e9ec210000"], + [0x13e524, "e9a9ddffff9090"], + # Clean up failed encoded frames so the above fix doesn't wait forever when + # these trigger a reset + [0x13d735, "e927000000"], + [0x13d761, "488b9d70ffffff4c01f3e9d6feffff"], + # Reset tracking and encoding when starting a new streaming session + [0x1129f1, "57488b7f184885ff740feb04"], + [0x112a01, "488b076a015eff50285fe91013feff"], + [0x11a251, "4c89a30804000031c0894308c3"], + [0x11a297, "e8b5ffffff6690"], + [0x11a2aa, "e84287ffff"], + # Ignore stale tracking IDs and repeated older attempts + [0x11b301, "89d02b47084189c6c1e004"], + [0x11b30c, "0f8853050000"], + [0x11b614, "0f841719fdff"], + [0xecf31, "410fb644240988430ee926e90200"], +] + |
