-
-
Notifications
You must be signed in to change notification settings - Fork 252
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
nv2a: Fix combiner single stage color+alpha interdependence #999
nv2a: Fix combiner single stage color+alpha interdependence #999
Conversation
Could you add a before and after pixel shader example, as it's hard to tell what effect this change has - the new code appears to produce the exact same output as the previous code, so what am I missing here? |
The attached screenshots certainly look very different to me, so I'm not sure what further evidence can be provided :) You can also run the linked test on master and verify that it does not produce the same green quad that it does on HW (and with this PR). |
So you're not adding example pixel shader code to compare here? Okay. Pity. Would've been nice for reference. |
Sorry, I misunderstood and thought you were asking for screenshots. Pity not required. The PR very simply defers the assignment of the temp vars to the end of the stage so the color combiner cannot affect the alpha combiner. Before:
After:
|
Fixes #890
Potentially could fix other games since it'd affect any pixel shader that assigns alpha using the blue component of a register that is also modified in the same combiner stage.
Test
HW Results
Before fix:
After fix: