diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-28 05:41:45 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-28 05:41:45 -0400 |
| commit | cff4add442d78e088d13005c4c6fdd436b47eecd (patch) | |
| tree | c4bcb200d58b5c1f70ebcd9449597a987ad2e6e8 /src/core | |
| parent | 5c4e642c286279f3e44d476550736ed6bff400ab (diff) | |
nx2: semaphore releases latch the acquires they satisfy
Switch 2 channels that wait for an exact semaphore value poll on the console
and see every release. Eden resumes a waiting channel only between command
lists and writes releases when fences signal, often several back to back, so
an acquire-equal could miss its value and wait forever. Title 4's 3D queue
ticks a counter that two other queues wait on value by value; under the
loading after the post-customization save one of them missed a tick and the
game froze (channel 4 waiting for 0x5293 with the counter at 0x5310).
Pending acquires now register with Nx2SemaphoreWaiters before fences run,
and every query-cache payload write and QMD add/max release latches the
waiters it meets at the moment it is written.
Diffstat (limited to 'src/core')
0 files changed, 0 insertions, 0 deletions
