-
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
(OpenGL) Certain Games Crashes With ADRENO GPU 3xx and 5xx series #16015
Comments
@Gamemulatorer |
Why? |
I wonder if we simply need to activate the NO_DEPTH_CANNOT_DISCARD_STENCIL workaround, but in GL. It sounds similar based on another issue, especially if pixel depth rounding fixes it. -[Unknown] |
If anyone can compile and test, you can basically try adding: if (caps_.vendor == GPUVendor::VENDOR_QUALCOMM) {
bugs_.Infest(Bugs::NO_DEPTH_CANNOT_DISCARD_STENCIL);
} Around here: ppsspp/Common/GPU/OpenGL/thin3d_gl.cpp Line 635 in f3c0976
If that prevents the crash, it might need some small tweaks and could use conservative depth potentially (?) but it would only take this slow path in potentially necessary cases, unlike forcing pixel depth rounding always. -[Unknown] |
Sorry to say I don't know how to compile apk :( |
looks like the game also has a driver bug issue for adreno |
Can you define what is the issue of those games on adreno gpu 3xx/5xx series? Screenshots? |
bolt fc |
If you add those games id to PixelDepthRounding what happen? |
Try. :) |
Still crashing :( BTW thanks Saramagrean for the apk. |
Since only certain games crash in this case, there should be some detectable case, even if it's different than the Vulkan issue. I just checked Persona 3, though, and it never seem to hit this condition: It also does draws before the crash with zwrite_off && ztest_on, as well as !ztest_on. It never enables ctest_on either. I thought maybe atest, but it hits -[Unknown] |
GE dump before it crash. |
Another list of games that crashes using opengl backend. Hack/Link |
I can also reproduce this on my vivo y11 snapdragon 439 adreno 505 android 11. |
sorry I use the latest build but almost all the games I have after loading the game, always fc |
[v1.13.2-1726-gba32ef5ea] |
Maybe 🤔? |
sorry @Gamemulatorer can you try it on mediatek. |
Sadly I don't have any mediatek phone with vulkan supported. |
Samsung M20 |
This is an adreno 3xx/5xx series gpu issue using opengl :) |
|
If all games are force closing with non-Adreno, it's probably best to create a new issue. It'd really help to know if it's new and if so, since which commit. -[Unknown] |
See hrydgard#16015. Attempting to avoid a driver bug.
For the release, I think I'm just gonna make a special compat flag that enables pixeldepthrounding for these four games on Adreno. Not sure what else I can do :/ |
…6015 See #16015 Partly derived from master...unknownbrackets:ppsspp:adreno-deadlock But this one surgically activates it only for the known affected games, to avoid any additional performance regressions in the release. Entirely untested.
Just to note: this crash is not at all new, at least Persona 3 has been crashing for quite a while on affected devices. The crashes only seem to affect specific scenes, and in Persona 3 for example, you can work around it simply by having a save file afaik. Might be good to make sure the vendor bug checks setting applies in case someone who could play before (with workarounds like not starting a new game on an affected device) can no longer get playable performance with early z checks forced off. -[Unknown] |
…6015 See #16015 Partly derived from master...unknownbrackets:ppsspp:adreno-deadlock But this one surgically activates it only for the known affected games, to avoid any additional performance regressions in the release. Entirely untested.
Add compat flag / bug check for games on old Adreno/GL affected by #16015
I added a "vendor bug checks" check, added the missing games and merged. Please test to see that the workaround has been applied correctly. |
That's better than crashing, at least. Don't know what else we can do here for now, moving further work to later versions. |
Adreno 306 still suffer freezing on certain games :( |
These games, or other games? |
Naruto Shippuden Ultimate Ninja Impact and Phantasy Star Portable 2. |
Naruto Shippuden Ultimate Ninja Impact. If OldAdrenoPixelDepthRoundingGL Screenrecording_Freeze.mp4If OFF the game works normally 🤔 |
uh what, I thought we added it because it fixed freezes in the game? :) So we should just remove it again from the compat.ini? |
I don't know why this is only happen in my vivo y51a adreno 306, but not in my vivo y11 adreno 505 works correctly with OldAdrenoPixelDepthRoundingGL enable. |
Might be good if you guys increase the android version to android 8.0+ adreno 3xx/5xx series? as mention here #11355 (comment) driver bug start in that android version 🤔 My vivo y51a is android 5.1 only. |
Hm, ok, yeah, I'll give that a try. |
Hello, the option to change drivers does not appear in Adreno 308 Version 1.17.1 |
The option to change drivers is only applicable to Vulkan, with newer Adreno GPU editions, unfortunately. |
Thank you, and the option is not available in Adreno 508 either? |
The criteria are:
If your device doesn't pass this it's not possible to load drivers at runtime, sorry |
Game or games this happens in
Naruto Shippuden Ultimate Ninja Impact
Kingdom Hearts Birth By Sleep
Monster Hunter 3rd HD Portable
Persona 3 Portable
What area of the game / PPSSPP
The following games crashes using opengl backend on adreno 3xx/5xx series.
Naruto Shippuden Ultimate Ninja Impact #12847
Kingdom Hearts Birth By Sleep #11029
Monster Hunter 3rd HD Portable #11410
Persona 3 Portable #11355
Workaround is by adding those games id to pixeldepthrounding could also fix graphics glitches for both opengl and vulkan 👇
#11583
What should happen
Not crashing and no graphic glitches
Logs
None
Platform
Android
Mobile phone model or graphics card
OPPO s3s Snapdragon 450 Adreno 506
PPSSPP version affected
All
Last working version
None
Graphics backend (3D API)
OpenGL / GLES
Checklist
The text was updated successfully, but these errors were encountered: