diff options
| author | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 11:29:42 -0500 |
|---|---|---|
| committer | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 14:53:47 -0500 |
| commit | 0ed4a3a9e795896a4751d0330c78958a309d1aa0 (patch) | |
| tree | 0bbec5130c05f6cde7b6b1ab7b21c7b38aa4a9f9 /src/input_common/input_engine.cpp | |
| parent | 8b0666b74868da8221d9e3ef3995f3a862ee24b6 (diff) | |
shader: drop the slots of a failed handle subtree with its code
When BuildHandleProgram failed on a subtree it truncated the code back to where
the subtree started, which removed the Tee ops of the values the subtree had
kept, but their entries stayed in g_handle_slots. A Phi tries its other inputs
after the first one fails; if one of them reused a value from the dropped
subtree, it emitted a Load of a slot that nothing wrote, so the handle read 0.
Number slots with a counter instead of counting map entries, and on failure
erase the entries numbered from the subtree's first slot on and rewind the
counter, so such a value is built again.
Follow-up to 561f87abec.
Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
Diffstat (limited to 'src/input_common/input_engine.cpp')
0 files changed, 0 insertions, 0 deletions
