No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Catcrafts/Crafter.Graphics!112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/issue-110"
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?
Summary
Issue #110 reported
crafter-build test MeshDecompressStagingReleasefailing deterministically on the GPU decompress path (RTX 4090 + validation layers): thedeletionQueue.size() == 1assertion saw more than one entry, which also tripped the later "not freed before framesInFlight" check.Root cause (confirmed at
implementations/Crafter.Graphics-Mesh.cpp:175-176): a static (allowUpdate=false)Buildcannot refit, so itDeferredClear()s its now-dead per-mesh BLAS scratch in addition to the compressed staging (#67). That is two deferred allocations, not one. The test at the issue's reported commit built statically yet assertedsize==1, so the BLAS scratch was exactly the "extra deferred allocation the test doesn't account for" the issue flagged.The behaviour was already corrected on master by PR #109 (the #73 merge, commit
ed9b3f6), which switched the assertion's build toallowUpdate=trueso the scratch is retained and only the staging lands in the queue — that's why the test passes on currentmaster.What this PR does
Hardens that fix so the count can't silently regress. It adds a sibling case that:
allowUpdate=false,No production code changes — this is test-only regression coverage.
Testing
MeshDecompressStagingRelease: all 15 checks PASS (10 existing + 5 new), zero validation errors, on the real GPU decompress path.crafter-build test --jobs=1→ 20 passed.Resolves #110
🤖 Generated with Claude Code