Conversation
Author
|
Added a small follow-up to clear retired FlagPipelineEntry objects directly. With MSVC 19.44, the aggregate assignment built a zeroed stack temporary and copied it back; direct clearing emits zero stores to the integer/bool entry instead. Deadline checks, slot retirement order, sticky accumulation, and occupancy masks are unchanged. The existing upstream-based Release suite passes 427/427. In the separate X-Men development branch, the analogous interpreter/native-block change also passes 126 focused VU tests and exact recorded state, memory, GIF bytes and cycle checks at normal and 1/8/16/64-cycle slicing. Those game-specific replay fixtures and native-block changes are not part of this PR. No whole-game FPS claim is made. |
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.
Summary
std::countr_zero.Motivation
The fixed pipeline arrays are usually sparse. Earlier X-Men Legends bring-up
profiling identified VU execution and pipeline retirement as major costs, so
checking empty slots on every cycle is avoidable work. Allocation and retirement
must retain their original ascending slot order, timing, and reset behavior.
This is not a claim of current playable gameplay speed. Earlier title-screen
timings are not a sustained gameplay benchmark. The September 4 follow-up adds
regression coverage only; it makes no further runtime or performance change.
Testing
across 48 one-cycle slices with intervening zero-cycle resumes. Reused VF
destinations receive alternating values so missing or late later writes are
observable. The test also checks same-pair FSSET priority and MAC/STATUS.
reappear after a fresh execution, including restarts at nonzero cycle counts.
All new test programs and inputs are synthetic; no game data is included.