Masked-clear pipeline creation admits failed resources and caches null results #1787
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot#1787
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Masked color clears can retain failed Vulkan resource creation outputs or permanently cache a null pipeline. This is a source-derived failure-path defect reproduced with game-free fault injection, not a report of native OOM or an observed player crash.
In
clear_pipelineon main2877284, layout and shader-module creation results are ignored, andclear_pipes[key] = pladmits a failed/null graphics pipeline. Undefined layout/module error outputs can reach subsequent API calls. A transient failure can suppress that clear indefinitely instead of retrying on a later present.Proposed scope: validate each stage, publish only valid resources, clean up partial ownership, bound failed-key attempts within a present and retry later. Preserve successful clear variants and the existing caller's null-pipeline guard. No rendering interface or shader change.
Priority: S2 (3) x reach 1.0 x confidence 0.4 = 1.2. Reach describes the shared Vulkan path conditional on creation failure; actual incidence is unknown. Confidence is limited because native failure was not reproduced. This does not outrank demonstrated higher-priority player failures.
Claim: issai on Discord / Arkex-ai on GitHub; #dev-work record. The investigation predates the new claim workflow. I can test Windows / RTX 5070 Ti / driver 621.01 / Ryzen 9800X3D / 32 GB RAM, plus Linux CPU fixtures.
Evidence: 31 production-code fixture cases pass on Windows LLVM and Linux GCC/ASan/UBSan. Four negative baseline controls expose ignored stage failures and null-cache poisoning; 16 behavioral mutations test the safeguards. Historical healthy native serial/parallel checkpoint runs on candidate
457ab35exited cleanly with resize and decoded 3440x1440 captures. Those runs do not prove native OOM recovery, every masked-clear variant, or the new main's runtime. New-base validation is in progress.Overlap: #1772 changes the graphics creation call to
cached_graphics; it does not implement this admission/ownership policy. If it lands first, this fix must check that wrapper's returned result and retain the same failure tests. No duplicate open masked-clear issue was found in the title/body search.No game data or generated files are attached.