Skip to content

Cache Vulkan pipelines and add measured renderer diagnostics - #17

Merged
antono3 merged 3 commits into
mainfrom
perf/binding-measurements-20261014
Oct 14, 2026
Merged

antono3 merged 3 commits into
mainfrom
perf/binding-measurements-20261014

Conversation

@antono3

@antono3 antono3 commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

Newly named graphical executables repeatedly spent hundreds of milliseconds compiling the same eight Vulkan pipelines. Add a per-user application pipeline cache: in the controlled GTX 1060 comparison, median platform startup fell from 981 ms to 195 ms and pipeline creation from 816 ms to 28 ms. The measurements include cache-file loading and use fresh executable names; these are local observations, not universal guarantees.

Missing/corrupt/stale caches and directory, driver or write failures preserve rendering. Validate the application checksum plus Vulkan vendor/device/UUID header before import; save through a process-specific temporary file and atomic replacement. An empty TT_PIPELINE_CACHE_FILE disables caching. Keep the existing C renderer ownership and allocator/Vulkan pins.

Add opt-in GPU timestamp intervals and scene/post-processing capture labels with frame-fence synchronization, availability checks, counter-wrap handling and cleanup. Add reproducible compute/renderer/cache benchmarks and raw results. OpenCL binary caching is intentionally not added: its measured warm gain was about 1.2 ms, while checked compute remains slower than CPU-only work for these particle batches.

Validation: GCC build and runtime tests pass with compiler fallback disabled; headless checksums match. GPU profiling and cache roundtrip, truncation, payload corruption, stale vendor/UUID, missing-parent writes, default-location reuse and blocked-directory fallback pass on hardware Vulkan under validation. CI exercises the profiler on Linux, cache persistence on Linux and Windows, and the existing package consumers. Documentation links/source anchors and distribution tests (5) pass.

@antono3
antono3 merged commit f4e3a4e into main Oct 14, 2026
8 checks passed
@antono3
antono3 deleted the perf/binding-measurements-20261014 branch October 14, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant