-
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
[Vulkan] 魔法少女リリカルなのはA's Portable - Gears of Destiny: Graphical glitch #11980
Comments
Pretty likely to be the same old alpha test issue we've seen on Adreno 500 drivers... |
Ah...again?! |
Draw 1281/1282, it draws a box that contains the face, using:
This definitely activates the driver bug that the Adreno 5xx has. Our workaround doesn't activate because depth write is enabled (despite depth test being off.) I suspect it would workaround it to add more to the check: id.SetBit(FS_BIT_NO_DEPTH_CANNOT_DISCARD_STENCIL, !IsStencilTestOutputDisabled() && !gstate.isDepthWriteEnabled()); Replace with: id.SetBit(FS_BIT_NO_DEPTH_CANNOT_DISCARD_STENCIL, !IsStencilTestOutputDisabled() && (!gstate.isDepthTestEnabled() || !gstate.isDepthWriteEnabled())); Not sure if this would have negative impacts in other games. -[Unknown] |
Hm, that feels like it should be safe-ish because with the depth test disabled, depth write does nothing. |
I have a same problem on a Mail-G52 GPU |
Is this working now? -[Unknown] |
Noted as not working in #13599. -[Unknown] |
@Gamemulatorer @Panderner It do appears on my honor 9x with mail g52 .Same as Leopard20's Mi 5s |
It just reproduces on certain devices |
Right, this is a driver issue. I'm not sure specifically what devices are affected but I think it is only:
The devices mentioned:
So on the Mali front, this probably affects all of Bifrost. It'd be interesting to know if any phone with the below SoC has the issue (these are all Valhall, like Adreno 5xx -> 6xx):
If we can narrow down the range we at least would know for sure what devices are and are not affected and might be able to get some info from Mali. -[Unknown] |
Well, yes, but it sounds like it might be a mistake or typo because the provided screenshot does show the issue as Panderner and Leopard20 noted. If it's indeed not affected, that could mean a driver update fixed it which would be good and might mean a driver update would fix the others if available. In that case, Mali might know more about the details of the glitch and if a workaround is possible. But like I said, I suspect it was a mistake and that device is also affected. -[Unknown] |
Sorry I was wrong there 😅 PROOF Screenrecorder-2021-10-13-17-20-17-565.mp4@ss8688 feedback please. |
Probably means that the driver over-optimizes something, and PixelDepthRounding prevents it from doing so as a side effect - and would not be needed on other GPUs, and is supposed to have some performance cost. At this point maybe we need to add a PixelDepthRoundingIfMali to avoid performance loss... |
This can be fixed now via c5a10a5 on MALI GPU only I don't know about Adreno. |
I assume the latest change triggers this since depth test is off. So I'm going to close. Please comment if it's not actually fixed on your device with more detail about your device and its GPU and driver version. -[Unknown] |
This issue can still reproduce on adreno gpu in vulkan. Record_2022-09-16-01-10-13.mp4 |
PixelDepthRounding can fix this issue on adreno gpu in vulkan. |
I wonder if this just means there's something wrong with the workaround in recent versions. Was it working in older git builds (around when it was confirmed before)? If yes, it must've broken at some time. PixelDepthRounding is a bit expensive and can reduce quality (like forcing 1x PSP render resolution), so it may not be the ideal fix. -[Unknown] |
Hm, we only activate the workaround on certain driver versions on Adreno: https://github.com/hrydgard/ppsspp/blob/master/Common/GPU/Vulkan/thin3d_vulkan.cpp#L807 Maybe the range is simply too narrow. Can you check your GPU and driver version in Settings/Tools/System Information? |
It was definitely fixed on version 0x80180000 with an Adreno 530, but maybe driver versions are not so linear. And it was not seen on Adreno 620 or 630 devices. -[Unknown] |
|
…etter check from the Mali bug. Should fix #11980
Seems on Adreno we were still using the old check, refined it for the Mali bug. Testing on the dump, only the Mali check catches it. So decided to finally merge these two bug workarounds, and also remove the compat flag and just activate it universally when we detect stencil without depth. Should work once #16043 is merged. |
Please check if that fixed it. |
Yes, this was fix via 4045de8 |
The characters' pictures during dialogs is not displaying correctly.
Vulkan:
OGL:
recording.ppdmp.zip
Device: Mi 5s Plus, Android 8.0
The text was updated successfully, but these errors were encountered: