Repository navigation
Cache Vulkan pipelines and add measured renderer diagnostics - #17
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.