aboutsummaryrefslogtreecommitdiff
path: root/src/tests/video_core/vertex_repack.cpp
diff options
context:
space:
mode:
authorSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-11-02 11:34:40 -0500
committerSssnowyyy <78863999+Sssnowyyy@users.noreply.github.com>2026-11-02 14:53:47 -0500
commit256b1dc346e19bc60c2884d4af875fc53ef0a99a (patch)
tree1af39de66d5b0aa451b533d339706e3094939cef /src/tests/video_core/vertex_repack.cpp
parent690f80e15f411d8fa46a2eecdfc50ddadc8ed5e0 (diff)
video_core: don't execute command lists copied before their channel waited
cce6d44af2 executes each command list entry from a copy of its words taken at submit. Games submit command lists before writing them: the lists wait behind a semaphore acquire, and the game writes their commands just before it releases the acquire (Mario Kart World after present). The copies of those lists were stale. Pokopia stopped after its first frame on macOS: its GPU never reached the fence the game spun on (EDEN_NX2_PB_SNAPSHOT=0 made it run again). Count each channel's suspensions on an acquire and the resumes after them, and record the count with each copy. A list copied while its channel was suspended, or whose channel suspended since, reads guest memory instead. Lists submitted and run without a wait in between keep the copy. EDEN_NX2_PB_SNAPSHOT=0 still disables it altogether. Assisted-by: Claude Sonnet 5.5 (first version); Claude Opus 5.5 (bisect, suspension count, testing and commit message)
Diffstat (limited to 'src/tests/video_core/vertex_repack.cpp')
0 files changed, 0 insertions, 0 deletions