-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Graphical Glitches in Colin McRae Dirt 2 (missing water) #13012
Comments
so now only water isn't rendered in the game. |
But the car models still not fixed in OpenGL on latest build @Maarcis12 have you tested all backends? |
@Panderner yeah, i tested all backends, it could also be that i have "disable slower effects" enabled, so my bad on that one. |
But when i tried to make the GE Dump the car disappears: |
also, sorry for silence, i was bit busy with my job, but i will apologize for the initial confusion because the reason it doesn't act up on my end is that i have "Disable slower effects" enabled. |
Umm yes @Maarcis12. Disable slower effects can fix texture glitches for cars but the water still not fixed. the water issue still remain. |
and that's what i mentioned earlier. |
thanks for reporting! The issue is this line that I added in ReinterpretFramebufferFrom in f1ab6c6 :
Doesn't quite make sense though .. I can revert that but it messes up ghosts&goblins on old hardware. This will need some digging... |
OK, cars should be back now, and with better lighting. |
@Gamemulatorer I'm using POCO M3 still have graphical glitch on vulkan. |
So the vulkan gpu of SD662 POCO M3 is so glitchy on PPSSPP 🤔 |
And yes my PC too on vulkan. I'm using a GTX 1050 Ti GPU |
We do have support for write masks through shader framebuffer blend now if you turn them on in compat.ini, actually (ShaderColorBitmask). maybe that'll be enough together with reinterpret? |
Even turning off BlueToAlpha and on ShaderColorBitmask doesn't help here, the reinterprets seem to be going okay though, don't quite see where it goes wrong or how exactly it's supposed to work. It does involve stencil too, and actually does two passes of first drawing water masks with alpha test and then stencil-tested water texture, just with two different diffuse colors, but I don't see any annoying stencil/alpha interaction like using DST_ALPHA or similar. |
Okay, turns out the dump I'm using didn't activate the ShaderColorBitmask flag somehow, but forcing it on still gives this as the texture: Which is converted from this: There's almost no blue with the right colors. In software, I see dither is actually not enabled during these draws. But ultimately the alpha ends in the right ranges. -[Unknown] |
Maybe it was an old dump before we had game IDs embedded in them? Anyway, I think there might be a problem with the combination of shader blending (which is required for the masking) and logic ops (all of these steps manipulating the water texture uses them). The logic operation will happen after the masking, and not itself be masked, which is gonna result in some wrong bits. We are going to have to move logic ops into shader blending (assuming this is the issue, but we should anyway). This also allows for emulating logic ops on platforms where they are not available. At least there's no stencil involved in making the water texture... Oh yeah, #15944 helps a lot when looking at stuff in renderdoc, so much easier to see what's going on without all these copies. |
Aha, darn. I missed that it was doing logic ops. That explains it indeed. -[Unknown] |
Note: Not yet fully fixed on all platforms. D3D11 and OpenGL ES coming up. Keeping closed, since the mystery is solved. |
There are some graphical gliches in Dirt 2:
Car Models renders incorrectly:
Real Hardware:
PPSSPP:
Water are missing in some tracks.
Real Hardware:
PPSSPP:
And of course here's a GE Dump:
Car Select.ppdmp.zip
In-game.ppdmp.zip
Water.ppdmp.zip
The text was updated successfully, but these errors were encountered: