-
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
(Android)(Vulkan) Texture Shader crash in SNK NEO games #14774
Comments
Hardware tessellation is buggy enough that I'm considering just disabling it entirely, until it can be fixed... |
|
Suspect that this is happening with the HW tesselation crash in KOF '96. Should help #14774
Not only King of Fighters '96 are affected all neo geo station games. The complete list: |
Still crashing if I enable hw tessellation using ppsspp latest git build. |
Hm, the error message in the log implies that it's hitting one of:
Only the former should be possible in Vulkan. The crash log above shows GLES - it might've been fixed by #14777, but can you try We actually seem to reuse that bit: // These are the original vertType's values (normalized will always have colors, etc.)
id.SetBit(VS_BIT_HAS_NORMAL_TESS, (gstate.vertType & GE_VTYPE_NRM_MASK) != 0 || gstate.isLightingEnabled()); So perhaps we should really be setting -[Unknown] |
|
The logs above is capture only via logcat reader app I don't have a pc to try the adb logcat -c sorry 😐 |
Thanks, that does help. So it's definitely coming from SubmitCurve, not sure if But I guess it's probably because it's comparing against the game's vert type, not the vertType for submission... -[Unknown] |
here log after adb logcat -c
|
Almost certainly the same as in GL, only in Vulkan we don't allow software fallback vertex shaders, and thus we have an assert there if we fail to generate a vertex shader.
So there's some condition here that causes GenerateVertexShader to return null, and given the other information above, it's almost certainly "Invalid flags - tess requires normal". Unknown's idea for a fix is likely on the right track. |
Hm, the hw tess path seems to use the normal channel weirdly?
Anyway, I think the answer is in SubmitCurve and its call to NormalizeVertices. It should probably insert default normals to keep the rest of the pipeline happy. Likely the use of tesselation is just some accident or old test code anyway in these games, unless they are as silly as puzzle bobble and actually uses it to draw plain quads... |
…modify submitType). Should fix #14774
Hm, it should be checking features and enabling depending on them, maybe there's a wrong check. -[Unknown] |
Thanks for reply! |
I don't know why this game is crashing again with HW Tesselation + Texture Shaders, I'm using ppsspp 13b3a54 on my vivo y11. |
|
GE Dump: This crash since v1.14 |
I discovered that HW Tesselation does nothing to do about the crash. The crash can only reproduce if Texture Shader is use. I will change the title. |
That makes more sense, I think. I'll look into it. |
Want to add a new logs
|
Validation caught some weirdness here. Might possibly help #14774 ?
Would be interesting to test this again after #17219 is merged. |
I've tested with the GE dump on the few Mali phones I have that support Vulkan, with no issues. I'm gonna close, please re-open if you still see this with detailed information about what device and PPSSPP version. |
Game or games this happens in
NPUH10119 - King Of Fighters '96
What area of the game / PPSSPP
If I enable hw tesselation on KOF '96 the ppsspp emulator is crashing without blue screen showing up.
What should happen
Not cause crashing if hw tesselation is on 🤔
Logs
ppsspp_logcat_08-30-2021.txt
ppsspp settings
NPUH10119_ppsspp.ini.txt
Platform
Android
Mobile phone model or graphics card
Redmi Note 9 Android 11 Helio G85 Mali-G52 GPU
PPSSPP version affected
v1.11.3-1194
Last working version
None
Graphics backend (3D API)
Vulkan
Checklist
The text was updated successfully, but these errors were encountered: