rtx: Snapshot object state#352
Merged
Merged
Conversation
helium snapshot-commit (anari-sdk 2026-07-18) routes getters to the committed snapshot while setParam writes staging: the emissive capture read the post-translate keys the same flush had just written and saw nothing, silently dropping the Geometry Light on single-commit flows. Mirror the translation instead: a freshly set pre-translate 'emissive' determines the binding; post-translate keys only cover later commits.
MaterialX staged the transcoded MDL via setParam and delegated to MDL in the same flush; under helium snapshot-commit the getters MDL::syncSource uses read the committed snapshot and never see those writes — the raw .mtlx path compiled as MDL 'code' and every MaterialX material silently fell back to diffuse. Two-part fix: a protected MDL::SourceHandoff that subclasses populate every commit and syncSource prefers over the param getters — and the param overwrite is REMOVED entirely. The app's source/sourceType/ materialName stay authoritative, which also fixes outage recovery: the overwritten source param lagged a flush behind m_generatedSource, so needsRetranscode's self-write recognition misfired after a FREEZE and re-parsed generated MDL as a MaterialX document.
…mmits
Registry-created samplers never pass through anariCommitParameters(),
so nothing captures their committed parameter snapshot. Their direct
commitParameters() reads staging and works once — but the buffered
re-commit their RegisteredObject constructor queues runs under a
ReadCommittedScope against an EMPTY snapshot and loses every parameter
('missing image' image3D, invalid textures, thrust crash downstream).
Mirror staging into the snapshot at the four SamplerRegistry creation
sites; keep CompressedImage2D's equal-stamp re-finalize from zeroing
(and thereby leaking) its live CUDA array now that the path fires.
The World zero instance/group sites get the same treatment
prophylactically (no empirical failure traced there), and the zero
instance's staged 'id' is now actually re-committed — it observes
nothing, so no buffered commit would ever consume it (it silently
stayed at the ctor default before).
jeffamstutz
approved these changes
Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow up on Helium's snapshot object parameters