#838 WIP: fix(vk): the render thread may leave its core when another program takes it: no 30-40 ms stalls in Castle Town's market
Commit
Plan (gpt-6.1-terra)
Linux threaded-rendering placement and performance in Castle Town Market
In plain words
The plan compares main and the PR in child Link’s Castle Town Market for 60 seconds after warm-up, with threaded rendering enabled. It measures mean FPS, median and p99 frame time, hitches over 50 ms, crashes and placement logs; device loss, a missing reserved-core log, a Linux “may run” log or a substantial performance regression fails. The Linux target is currently offline and will wait for a tester. This farm schema skips Windows gameplay, so the requested Windows runs and direct default-versus-strict comparison cannot be represented; it also cannot count frames over 40 ms or guarantee daytime. Ryzen coverage remains outstanding, and a quiet run would not prove the contention fix. No tester online now matches linux: that target waits for one.
Asked for
Preserve the author's Linux test and add Windows gameplay for head 8015c9a8c7a1d5504d9d6bef16266c97f39f60a7. Windows gameplay is now opt-in in Beanstalk main (PR 7); this volunteer is running dev-416730c with isolated_gameplay enabled. Linux: build and measure 60 s in child daytime Castle Town Market with threaded rendering On, checking the reserved-core placement log, no Windows-only "may run" line and no device loss. Windows: target Windows NVIDIA, without pinning a GPU model or requiring Ryzen, so this RTX 4070 / i7-13700F PC can contribute. Use isolated disposable new-game saves and the child daytime Market. Threaded rendering On, frame generation off, uncapped, otherwise identical settings. Measure 60 s after warm-up, at least two interleaved runs per arm. Compare main with the PR and, using a PR-only switch matrix if supported, PR default against RX_VK_RT_STRICT_PIN=1. Report mean fps, median/p99 frame time, hitches, crashes/device loss and placement logs. State explicitly if frames over 40 ms, direct switch comparison, or other requested coverage cannot be represented. Do not substitute a title-only test for Windows gameplay. This Intel hybrid CPU supplies supplemental Windows/NVIDIA coverage; it does not complete the author's separate Ryzen/single-core-kind request. Do not run the comment's external core_hog program. A quiet run does not prove the contention fix. Keep saves, dumps and generated game builds local; only normal permitted farm reports may be uploaded.
Raw plan Download plan.json
{
"pass": {
"crash": false,
"fps_mean": {
"min_delta_pct": 10
},
"frametime_p99_ms": {
"max_delta_pct": 15
},
"log_forbidden_hits": {
"max": 0
},
"log_expected_missing": {
"max": 0
}
},
"probe": [
{
"kind": "crash"
},
{
"kind": "frametime"
},
{
"kind": "draws"
},
{
"kind": "log_match",
"expected": [
"vk: the replay thread runs on logical processors .*kept from the game's threads"
],
"forbidden": [
"vk: the replay thread may run on logical processors",
"vk: device lost"
]
}
],
"matrix": {},
"schema": 3,
"target": [
{
"name": "linux",
"tags": [
"linux"
],
"min_reports": 1
}
],
"summary": "Linux threaded-rendering placement and performance in Castle Town Market",
"baseline": {
"ref": "main"
},
"scenario": [
{
"env": {
"RX_VK_ASYNC": "1",
"RX_VK_RECORDER": "thread"
},
"name": "market-threaded",
"runs": 2,
"step": [
{
"do": "teleport",
"to": "Market_Child"
},
{
"do": "wait",
"map": "Market_Child",
"event": "map",
"timeout_s": 60
},
{
"do": "expect",
"age": "child",
"map": "Market_Child",
"state": "play"
},
{
"do": "measure",
"name": "market",
"warmup_s": 40,
"duration_s": 60
}
],
"start": "new",
"matrix": true,
"settings": {
"frame_rate_cap": 6,
"frame_generation": 0
}
}
]
}
Targets
| Target | Tier | Reports | Status |
|---|---|---|---|
| linux | reviewed futondestroyer | none yet | 0/1 pass, 0 running, 1 queued |
Reports
No reports yet. Each tester posts one when its job ends.