aboutsummaryrefslogtreecommitdiffstats
path: root/steamvr/patches.toml
blob: a4e618e81ea0249948ecfbc0c83c0ee23ce55331 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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"],
]