Repository navigation
Conversation
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
c98c999 to
ac7f69f
Compare
MarcZX10
left a comment
There was a problem hiding this comment.
The version-scoped cache path and existing Vulkan UUID/device checks look sound. One regression-test assumption looks brittle: pipelineCacheFileTests calls remove_all(directory) only after the lambda is exercised, then the new cacheFile helper requires the cache root to contain exactly one entry. A prior failed/interrupted run can leave an older version subdirectory in this unique temp directory, making the successful cache test fail even though the current version contains exactly one expected file. Could the helper select the current ShaderDiskCache::SourceVersion() subdirectory (or assert the current version directory and file while tolerating other versions)? That would keep the test focused on the new path without assuming cleanup from a previous test process.
|
@MarcZX100 thanks for the review. Agreed, the helper should look up the current version's directory instead of assuming it is the only entry. Pushed 7c6fcf2,
For the record, a previous process could not leak into this run before either: the test root is Tested with the two commits on current
|
|
Rebase handoff — rebased onto current Verified on Linux (CachyOS, kernel 7.2.9, GCC 16.2.1, Ninja, Release,
To pick it up: Head is |
7c6fcf2 to
dc4d6d2
Compare
|
@blawesom thanks for the rebase. I rebased onto the newer |
…ersion The pipeline cache file lived in the shader cache root and every run merged its pipelines into it, so pipelines built from SPIR-V of earlier recompiler versions were never dropped. The file only grew (965 MB for PPSA05684 after a few recompiler changes) and the driver loads all of it into host memory at device creation. The file now sits in the directory of the current shader cache source version, next to the variants it was built from. AI-assisted: yes
…ctory The test helper took the only entry of the shader cache root as the version directory. It now opens the directory named after the current shader cache source version, requires exactly one pipeline cache file there, and only requires the root to hold no files, so other version directories do not fail it. AI-assisted: yes
dc4d6d2 to
ca42107
Compare
What
The Vulkan pipeline cache file lived in the shader cache root, and every run merged its pipelines into it, so pipelines built from SPIR-V of earlier recompiler versions were never dropped. The file only grew: 965 MB for Uncharted: Legacy of Thieves Collection (PPSA05684, #4001) after a few recompiler changes, all of it loaded into host memory when the device is created (874 MiB of heap at startup).
The file now sits in the directory of the current shader cache source version (
ShaderCacheDirectory()/<source version>/vk-pipelines-*.bin), next to the variants it was built from, so it is dropped with them when that version's directory ages out. The USAGE.md sentence on the pipeline cache says where the file is.Related: #6958 (Pipodi) edits
PipelineCache.cppand the sameRecorder.cpptest file (periodic save), different lines; whichever merges second may need a trivial rebase. #5875 (merged) journals a run's pipelines and already listsShaderDiskCache::SourceVersionamong the reviewed names; #6568 edits the same USAGE.md paragraph. Neither moves the pipeline cache file, whichmainstill writes to the shader cache root.Tested
mainat that commit does not build here (PipelineJournal.cppstatic assertions), so the tests below ran on the previous base 3f171d0 with the same change.agc_pipeline_cacheandagc_pipeline_cache_file: the file is written inside the current source version's directory and no file is left in the root; other version directories are tolerated. Re-run with the review fix onmain29a546d, alsoagc_pipeline_journalandagc_driver_pipeline_journal. Negative controls:PipelineCache.cppfrommainfails, a file under another version fails.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)