-
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
The road in the first level of Megamind: The Blue Defender (USA) has broken textures when using Vulkan #13846
Comments
Could you try exporting a GE frame dump of the first issue? These help a lot. Just make sure to export it when you see the issue - it's almost like a screenshot. If you make it while the issue isn't happening, it won't help. See here for instructions - it's not hard and works on Android too: You can zip that and then drag and drop it into a reply here. The lines in the second are probably the same issue as before unfortunately. You can try enabling hardware texture upscaling and select auto, and see if that helps. See here for an explanation of what's happening: -[Unknown] |
Thanks for the explanation. Hope I did it right. |
When I checked this GE dump I can't see the graphical glitches either |
Note: this issue also affects Direct3D 9 and Direct3D 11 |
PixelDepthRounding minimize the issue on my phone. OFF 1Screenrecorder-2021-10-21-17-04-14-171.mp4ON 2Screenrecorder-2021-10-21-17-04-43-486.mp4 |
Using 931f20e the graphics glitch become horrible in Vulkan. |
Hm, is this only on Mali or some specific device? It still looks the same on Windows. Note: software transform doesn't seem to have the white dots. Not sure if that's new or was true before. -[Unknown] |
Before it's just like this #13846 (comment) but now the graphics is really broken in my mali gpu vulkan. |
In software the shadow get extend when walking. software.mp4While in Vulkan hardware transform on cause this issue. hardware.mp4PPSSPP v1.12.3-155 |
I cannot reproduce this when vulkan and hardware transform is enabled for me. Screenrecorder-2021-11-06-17-17-03-745.mp4 |
Got around to trying this, looks like there are two parts of this bug. On older Mali (in my case, Galaxy S8+), there's this big dropout of the road geometry. Looks like a depth/viewport issue. Presumably it's changing the view range and starting to draw more geometry to prepare for the upcoming corner, and that's why there's such a step change, but something goes badly wrong there, the GPU doesn't like what we give it at all. This does not happen on newer Mali, but there's still something that looks a lot like Z fighting. Turning on "DisableAccurateDepth" on older Mali seems to fix the first issue, and makes it look similar to the Z fighting problem that we see on newer Mali but a bit worse. Tried marking gl_Position as invariant ( Needs more investigation. |
It is using a weird multipass algorithm for shadows, where it renders the shadow-receiving geometry once in white textured only with the shadow maps, then renders again, blending the actual road surface with this blend mode: It leaves depth test enabled in the same direction as before (greater-equal), so it's very important that the vertices from this pass end up in the exact same locations as the previous pass to avoid Z-fighting. This is what I don't see any other difference at the "transition" where it breaks in view matrices or similar, weird... The game also does a mid-frame readback to memory, not sure what that's used for... It's also extremely inefficient in many ways, clearing the screen to a solid color with like 10 draw calls, and then immediately overwriting that with a sky, which then gets overwritten by content. |
This is at native resolution. It doesn't happen with OpenGL.
There's also this upscaling issue that happens with Both Vulkan and OpenGL. Sorry if this is another unfixable problem.
The text was updated successfully, but these errors were encountered: