fix(build): run offline bake with portable zstd and Clang 18 #1954
No reviewers
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!1954
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/bake-portability"
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
Offline shader bake tools could fail on a clean Windows setup when they could not find a system Zstd library. They now use the project's existing Python dependency. The compiler check also accepts Clang 18 when it supports the constexpr assertion code the translator uses.
Closes #1931.
Technical changes
Validation
b5890847ond47206ed, all 5 portability checks passed on Windows LLVM and Ubuntu Clang 18. The checks cover real dictionary frames, corrupt and truncated input, native-reader fallback and the compiler probe.Looks good. I read the diff against the description and it matches: the zstandard path is tried first with the libzstd/CLI fallbacks kept, unknown-size frames are counted in bounded chunks and then validated with
allow_extra_data=False(so truncated and trailing-garbage frames are rejected, and the tests cover both), the dictionary fixture now fails loudly instead of writingstats["dict"] = "zstd -D failed", and the new constexpr probe mirrors the assert.h failure path.zstandard==0.25.0is already pinned in requirements.txt,RUN_ALL_ARGS = ["--cxx", "{cxx}"]is a known placeholder, and the new test is declared the way run_all expects. All CI checks are green on this head, including the Windows and Ubuntu source suites. No earlier discussion on the PR to reconcile.Nits, none blocking:
cap > 1 << 31here andcap >= (1 << 31)in_Zstd; harmless, but the two readers could agree.cxx_stdstill caches the result without keying it by compiler, and a stale-std=c++2aleft in an oldwork/bake/cxx_stdwould still be returned. You note this is tracked in #1872, so fine to leave.github-sync referenced this pull request2026-11-12 06:22:54 +00:00