Repository navigation
test(agc): retain Windows stderr for loader diagnostics - #10322
oneandonlydean merged 1 commit into
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.
|
MarcZX10
left a comment
There was a problem hiding this comment.
Please rebase onto current main as required by CONTRIBUTING.md. This branch is based on b066e5c, 7,515 commits behind current main, and PreparedShaders.cpp has changed on main since then. The published-head Windows test run is useful, but it does not cover the current integration. After rebasing, please rerun the prepared-shader test set with loader diagnostics enabled and Vulkan required; the hosted Windows product job is skipped for this path.
|
A Windows check of this head with loader diagnostics on,
AI-assisted: yes (Claude Code) |
What
On Windows, the prepared-shader tests temporarily replace CRT
stderrwith_dup2. This closes the underlying handle while Vulkan loader diagnostics can still retain it. WithVK_LOADER_DEBUG=error,warn,layer, deferred-ABI tests failed during teardown; GDB stopped atSTATUS_INVALID_HANDLEin the loader'sWriteFile.Give the Windows process standard-error slot an independent handle before loading Vulkan. It stays valid for process lifetime while the existing CRT capture continues to collect the test's asserted diagnostics. No assertions or loader diagnostics are disabled.
Tested
Windows 11 Pro build 26300, WinLibs GCC 15.2.0, Release, RTX 4070 Ti SUPER, NVIDIA 617.42.
agc_driver_prepared_shaders_abi_deferred_undecodable_staterepeatedly failed with loader diagnostics enabled;_abi_deferred_stagesalso failed in the initial run. GDB identified the invalid native handle inWriteFileduring Vulkan teardown.agc_driver_prepared_shaders*CTests pass, zero skips, with Vulkan required, the shader cache disabled, the same loader diagnostics and Khronos validation. Logs confirm actual instance/device validation layer insertion; zero VUIDs. Captured deferral-message assertions still pass.4be3da2cwith the independent buffer-owner fix from fix(agc): keep buffer owners when a staged address space dissolves #10304 and perf(agc): defer pipeline artifacts with first-use preparation #6743.PreparedShaders.cppandShaderRegistry.cppare unchanged between that main and this branch's parentb066e5cb.This is a test-harness fix; no game-performance claim.
Independent validation of the published commit: Published head
cc4c48c0989a3b10fd34a52bfe177861546a4fc7: full Windows Release build and all 21 existing prepared-shader CTests and patched-library validation pass on a clean tracked tree without overlays (22/22, zero skips). Vulkan is required, shader caches are disabled, and loader logs confirm actual Khronos instance/device validation layers; no VUIDs. Hardware and toolchain are the Windows/NVIDIA configuration listed above. This independently validates the published commit in addition to the earlier integration runs. The complete CTest suite was not run.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)