Skip to content

Allow smaller recoveries after candidate allocation OOM - #16

Merged
nerdrx merged 2 commits into
mainfrom
fix/recovery-oom-candidates
Oct 19, 2026
Merged

nerdrx merged 2 commits into
mainfrom
fix/recovery-oom-candidates

Conversation

@nerdrx

@nerdrx nerdrx commented Oct 19, 2026

Copy link
Copy Markdown
Owner

A frequently used recovery candidate whose replacement allocation repeatedly returns device-memory OOM can keep being selected ahead of a smaller candidate that would succeed. Defer that failed child for one second while retaining the existing 250 ms device-wide failure backoff. Both selection and direct promotion honor the deadline.

This applies only before sparse binds/accounting changes, after replacement allocation returns VK_ERROR_OUT_OF_DEVICE_MEMORY. Existing ambiguous-failure gates remain intact.

Validation: deterministic size-specific allocator fault injection failed before the fix. Normal and hook-enabled CPU tests now verify unchanged ownership/accounting on failure, exact retry boundaries, and successful smaller-candidate recovery. Production build and 18 CPU/submission tests pass. This is CPU fault-injection evidence, not an observed real-device OOM or game performance claim.

@nerdrx
nerdrx merged commit c0c9843 into main Oct 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant