Repository navigation
fix(vk): Use host timestamps in frame captures - #1763
Conversation
Use the host nanosecond clock for recording-time samples so their epoch agrees with native-present traces. Preserve the raw record layout and all other profiler clocks, and label sampling intervals accurately. Assisted-by: OpenAI Codex
hckrman101
left a comment
There was a problem hiding this comment.
Looks good. host->now_ns() is the same clock the native traces use (vk_api.h already exposes it as int64 ns), and it's sampled at the same spot as before, so the record layout and readers are unchanged. The test extracts and compiles the real assignment, is registered in run_all.py, and CI is green. The docs and framelog.py wording changes are accurate.
|
Heads-up: this conflicts with main now (a lot landed today). Could you merge main into the branch (or rebase) and resolve the conflicts? Thanks! |
|
Merged current main and resolved all three conflicts. Kept main's capture readback barrier and both tested-configuration rows. The clock fixture now declares Seven focused checks pass, including the runner declarations check. The old profiler-clock assignment and commented-out assignment both fail the clock test. The runtime change is still one line; fresh CI is running. CI update: the clock check passes on Linux and Windows. The source-suite failures are unchanged main fixtures: |
hckrman101
left a comment
There was a problem hiding this comment.
Re-approving after the merge of main. The PR's own diff is unchanged in substance (host->now_ns() in the frame-log slot, the framelog.py wording, the docs row), and the conflicts are resolved with main's capture readback barrier kept. The test now declares RUN_ALL_ARGS itself, which is what #1822 expects, and run_all.py is no longer touched. CI was still running when I looked, so worth a glance before merging.
What this fixes
RX_VK_FRAMELOGtimestamps can use a different epoch from native present traces, preventing reliable alignment of captured images with those traces.Why merge
Change
gpu/vk/vk_replay.cpp: usel.at = host->now_ns().scripts/framelog.py: label image spacing as capture samples.tests/test_framelog_clock.py: execute the actual assignment and declare its compiler for the current runner.docs/tested-configurations.md: record the AMD diagnostic run and its limits.Tested
python -I -B tests/run_all.py --jobs 1 --strict framelog_clock framelog_integrity framelog_sink capture_slot_ownership present_semaphores png_publication run_all_declarations: seven checks pass.Not covered
02251and two prepare08737errors remain.