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

nv2a: Invalidate zeta when constructing non-matching color surface. #919

Conversation

abaire
Copy link
Contributor

@abaire abaire commented May 17, 2022

Fixes #420
Fixes #841
Fixes #931

Test
HW results

Note that HW results differ substantially from xemu due to the fact that xemu treats the color surface format as the definitive output whereas this seems to be configured separately on nv2a (it's possible to instruct the HW to write to the backbuffer in R5G5B5 format but still display the content as ARGB, resulting in a squashed, color shifted framebuffer).

@abaire abaire force-pushed the fix/invalidate_zeta_when_color_size_changes branch from 15af82a to 0f3bf9e Compare May 18, 2022 22:43
@abaire abaire force-pushed the fix/invalidate_zeta_when_color_size_changes branch from 0f3bf9e to d4d6d01 Compare May 19, 2022 17:27
@abaire abaire marked this pull request as ready for review May 19, 2022 17:50
@abaire
Copy link
Contributor Author

abaire commented May 19, 2022

Also fixes crashes in Van Helsing's loadout!

I believe that should've already been fixed by #933 which was included in 0.7.14

@abaire
Copy link
Contributor Author

abaire commented May 19, 2022

Also fixes crashes in loading Sonic Heroes!

@vanderleivieirainacio is that the issue tracked in #434 ? From the history in that bug it seems like it's not always reproducible which makes me dubious that this PR fixes it.

If you can confirm that #434 is still broken on 0.7.15 and using just this PR fixes the problem I'm happy to mark it as fixed so it gets closed when this is merged.

@vanderleivieirainacio
Copy link

Also fixes crashes in loading Sonic Heroes!

@vanderleivieirainacio is that the issue tracked in #434 ? From the history in that bug it seems like it's not always reproducible which makes me dubious that this PR fixes it.

If you can confirm that #434 is still broken on 0.7.15 and using just this PR fixes the problem I'm happy to mark it as fixed so it gets closed when this is merged.

You're right, both Van Helsing and Sonic Heroes are already fixed in version 0.7.15 my friend. It was my mistake, I should have checked earlier. Well, Van Helsing and Sonic Heroes work now, no breakages. Thanks for the work friend.

@mborgerson
Copy link
Member

Note that HW results differ substantially from xemu due to the fact that xemu treats the color surface format as the definitive output whereas this seems to be configured separately on nv2a (it's possible to instruct the HW to write to the backbuffer in R5G5B5 format but still display the content as ARGB, resulting in a squashed, color shifted framebuffer).

We could emulate this behavior, but for now let's ignore this pathological case :)

@mborgerson mborgerson merged commit 66b57dc into xemu-project:master May 20, 2022
@abaire abaire deleted the fix/invalidate_zeta_when_color_size_changes branch May 20, 2022 01:26
@Triticum0
Copy link

You missed this #694

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants