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: Round lookup rect to block boundary and improve overlap check. Fix up shuffle behaviour (Mostly Direct3D) #10974

Merged
merged 2 commits into from Mar 30, 2024

Conversation

refractionpcsx2
Copy link
Member

@refractionpcsx2 refractionpcsx2 commented Mar 26, 2024

Description of Changes

Round up lookup rects to the ceiling block, but without the TextureMinMax adjustment. Also clean up the Tex in RT check and general formatting in the texture cache file.

Also fix up some shuffle behaviour to fix some issues when the texture can't be the framebuffer (like no barriers)

Rationale behind Changes

This is one thing that's been a bit of a bane for us, the cleaning up was just something I wanted to do.
Shuffles had problems with copying the framebuffer correctly and setting the coordinates/copy area, this fixes that up.

Suggested Testing Steps

Test many games, especially ones which use Tex in RT, make sure they're no worse.

Fixes Godfather (for reals)
Also fixes Godfather and 007 Russia With Love on Direct3D and probably Metal too.
Corrects the minimap on Steambot and PachiPara 13

Vulkan Comparisons:

Godfather:
Master:
image
PR:
image

Agnostic Comparisons:

PachiPara 13:
Master:
image
PR:
image

Steambot:
Master:
image
PR:
image

D3D Comparisons:

007 Russia With Love:
Master:
image
PR:
image

Ace Combat 04 (Clouds):
Master:
image
PR:
image

Ace Combat 04 (Shadows):
Master:
image
PR:
image

Armored Core - Last Raven:
Master:
image
PR:
image

Scarface (Left edge):
Master:
image
PR;
image

@TheTechnician27
Copy link
Contributor

Confirmed fixes Godfather. Black line during cutscenes is gone, and I cannot reproduce the reflecting pool after more than 20 minutes of gameplay, when previously the glitch would activate if you looked at the game funny.

@refractionpcsx2 refractionpcsx2 changed the title GS/HW: Round lookup rect to block boundary and improve overlap check. GS/HW: Round lookup rect to block boundary and improve overlap check. Fix up shuffle behaviour (Mostly Direct3D) Mar 27, 2024
@refractionpcsx2
Copy link
Member Author

I've gone and done some further changes, I spent some time making Godfather and 007 work in Direct3D and fixed some bugs while I was at it, and it nicely fixed a few other things, candy shots above.

Enjoy!

… check.

- also clean up formatting in GSTextureCache.cpp
More prominent when using an API without barriers (like Direct3D)
@coornio
Copy link
Contributor

coornio commented Mar 28, 2024

Seeing the changes in the minimap of some of these games, any chance this also concerns the minimap of Persona 4 too? Admittedly it's been a while since I tested anything so if that was tackled already, please ignore me :P

@refractionpcsx2
Copy link
Member Author

Seeing the changes in the minimap of some of these games, any chance this also concerns the minimap of Persona 4 too? Admittedly it's been a while since I tested anything so if that was tackled already, please ignore me :P

Persona 4 is fixed in software, that's due to how the coordinates translate on to the screen, GPU's do things differently. I don't know if I can fix that at all.

@refractionpcsx2 refractionpcsx2 merged commit 9de38e5 into master Mar 30, 2024
22 checks passed
@refractionpcsx2 refractionpcsx2 deleted the gs_godfather branch March 30, 2024 11:43
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.

None yet

5 participants