GS/HW: Add two pass and three pass primid AA1.#14429
Draft
TJnotJT wants to merge 1 commit into
Draft
Conversation
3cff4b3 to
cfcab5b
Compare
|
This could revive part of #12391. |
Contributor
Author
The BIOS screen happened to be a convenient example for this PR, though it may not be directly related to that issue, since this is primarily focused on graphics performance. |
d683086 to
83d43b7
Compare
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.
Status: Draft until dump runs completed. Hold merge label until #13754 is merged, as there may be significant conflicts. Needs to be tested on Metal.
Description of Changes
Adds lower accuracy/cost AA1 alternatives to depth feedback:
The AA1 setting is changed to an oridinal setting with the following values:
In some cases, two or three pass will be promoted to depth feedback (e.g. if depth feedback, barriers, or DATE is already used in the same draw).
Thanks to @refractionpcsx2 for discussions and feedback on these methods.
Rationale behind Changes
AA1 with depth feedback is heavy, especially for its often small visual impact. This gives lighter alternatives where accurate AA1 is not required.
So far I haven't found any examples where three pass primid looks significantly different from depth feedback. Two pass can look significantly worse (example below).
Suggested Testing Steps
Use the 'AA1 Accuracy' drop down in Settings>Graphics>Rendering. Recommended to use basic blend and turn off accurate alpha test so that AA1 with depth feedback is not forced on.
Performance comparison would be helpful to make sure the assumed performance ordering actually holds (e.g. three pass is more performant than depth feedback). Three pass may increase render passes significantly, while depth feedback may increase barriers significantly.
Comparison
Example where two pass has significant inaccuracies.
Booting PS2 BIOS... _20220901235528.gs.xz.zip
Low AA1 + basic blend + 2x (edges of boxes look bad)

Medium AA1 + basic blend + 2x

High AA1 + basic blend + 2x

Low AA1 stats (6 frames)
Medium AA1 stats (6 frames)
High AA1 stats (6 frames)
Sources of inaccuracy
The two methods seem to have opposite sources of inaccuracy:
Did you use AI to help find, test, or implement this issue or feature?
I use AI as a reference, so may have asked relevant questions while developing this.