GS/HW: Support offsetting for channel shuffle instead of copying #13762
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.
Description of Changes
Adds support for offsetting reads on channel shuffles removing the need to copy the pages we need every draw, massively improving performance in some cases.
Rationale behind Changes
The previous method was kind of a temporary bodge because I was doing RT in RT and really didn't want to have to deal with channel shuffles as well.
Suggested Testing Steps
Test any games which use RT in RT (or Tex in RT) that had a fair few copies going on. A list of games below should help.
Did you use AI to help find, test, or implement this issue or feature?
No.
Dump run results (and ideas for games, some of these are best case results where there was multiple dumps):
Including increases also, for transparency.