Repository navigation
perf(shader): avoid copying SRT read uses - #3726
Merged
adriadam10 merged 2 commits intoOct 11, 2026
Merged
Conversation
9 tasks done
10 tasks done
This was referenced Oct 11, 2026
Collaborator
|
Checked: |
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.
What
Replace the temporary copy of each patched instruction’s operand-use list with the existing
IrValue::ReplaceAllUsesWithhelper.This avoids allocating and copying a temporary use list for every patched SRT read. The change is intentionally small and targets shader-planning work where reads have multiple consumers.
Tested
agc_shader_srt_read_patchingpassedagc_shader_bindlesspassedpython tools/check_conventions.py --base upstream/mainpassedgit diff --checkpassedSrtWalker::BuildPlanA/B benchmark with 12 alternating baseline/optimized runs per case. IR construction was excluded from timing; each run used fresh programs and discarded a warm-up batch:The benchmark shows a small workload-dependent reduction in SRT planning time, with the clearest improvement when reads have many consumers. It is not intended to claim a general game FPS or end-to-end compilation gain.
Checklist
main; no other open PR implements the same functions. I checked forSrtPlanBuilderand found no matching PR. Open PR perf(shader): compile reusable SRT expression plans #1341 is related SRT performance work, but changes compiled runtime evaluation rather than this use-replacement code.