Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GS/HW: Allow offset channel shuffles on sources. #11413

Merged
merged 1 commit into from
Jun 17, 2024

Conversation

refractionpcsx2
Copy link
Member

@refractionpcsx2 refractionpcsx2 commented Jun 17, 2024

Description of Changes

Allows offsetting in to render targets on offset channel shuffles.

Rationale behind Changes

A bunch of games do channel shuffles in such a way we can't override it and HLE it, so this allows that to work, but also accounts for both the draw and the read being offset by a number of blocks (block layout matches, so this is allowed). This means as a result a lot of uploads etc are reduced.

As a result, we can now upscaled Monster Lab, just be careful as it gets heavy, plus this gets rid of a readback, so it should increase performance on some machines.

Suggested Testing Steps

Check the following games.

Hitman - Blood Money (just make sure it's no worse, it should be fine, but won't be fixed)
Draw Calls: -4 [492=>488]
Render Passes: -5 [396=>391]
Copies: -1 [31=>30]
Uploads: -1 [47=>46]

Monster_Lab
Draw Calls: +1 [548=>549]
Render Passes: +1 [17=>18]
Copies: +1 [3=>4]
Uploads: -132 [151=>19]
Readbacks: -1 [2=>1]

Tomb_Raider_-_Legend
Draw Calls: -74 [273=>199]
Render Passes: -62 [102=>40]
Uploads: -14 [40=>26]

8x Upscaling Monster Lab: (Keep in mind it will be very slow in this resolution)
Master:
image

PR:
image

@refractionpcsx2 refractionpcsx2 merged commit 55e0464 into master Jun 17, 2024
24 checks passed
@refractionpcsx2 refractionpcsx2 deleted the gs_offsetchannel branch June 17, 2024 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant