Repository navigation
Conversation
|
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.
|
This branch has not been deployed
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.
What
Prevent Windows shader-cache housekeeping from entering
std::filesystem::directory_iterator/remove_allwith an extended (\\?\) or device (\\.\) namespace root. On supported WinLibs GCC 15.2 r7, the real housekeeping worker hangs for a prefixed 270-character root containing stale version directories. This addresses the housekeeping safety request on #7462 using its suggested skip option.Keep directory creation and the active version's
last-usedupdate before the guard. Skip both directory-enumeration loops for namespace roots; ordinary roots retain version eviction and temporary-file cleanup. Record this eviction limit and remaining long-device/prebuilt-discovery gaps in shader debt.The regression launches the real cache worker in a separate process with a five-second limit and a working directory inside its own temporary sandbox. It checks stale versions with/without stamps, recent versions, stale/fresh temporaries, cached data, an updated active stamp and an unchanged outside-root tree. Windows covers ordinary, short/long extended and short device roots; Linux covers ordinary short/long roots. Cleanup uses Python's filesystem implementation, avoiding the MinGW recursive-directory path under test.
Independent of #7462, #7731 and #7933: no borrowed commits or helper dependency. Merge-tree checks with all three heads are clean. The guard also covers #7731's additional root cleanup loop when composed.
Tested
Source head
8d45d5c446f24fca428ac47f5ea52845e5cc708a, based on main00d7e611e. Baseline is unchanged main production code with the test-only overlay91853d299b58f05a0fccfbd6c2465b3535745003.agc_shader_disk_cache,shader_cache_file_read,shader_cache_native_paths: each passes 3 processes on both OSes and both revisions (9 passes per OS/revision).agc_driver_pipeline_journal: 3 passes on each revision, on AMD Radeon RX 6900 XT / Windows driver 32.0.21030.2001 and Linux lavapipe/Mesa 25.2.8 / llvmpipe LLVM 20.1.2. These are the existing GPU record/replay checks; housekeeping permutations themselves are host filesystem tests.VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation,ANYPS5_NO_SHADER_CACHE=1,ANYPS5_REQUIRE_VULKAN=1and verbose CTest. Loader output confirms validation insertion; no missing-layer warning, VUIDs or validation errors/warnings on baseline or change. Portable layers are from Khronos main CI, sourceaea761f4d54b86682be4099c428dba27b6609940, manifest API 1.4.365.Limits: namespace-root eviction is intentionally skipped, including short aliases. Long
\\.\aliases still fail to refresh the stamp with the supported toolchain; the device regression uses a short root. Prebuilt directory discovery is outside this guard. No full CTest suite, title execution, SMB end-to-end test or performance claim.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)