-
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
Kidou Keisatsu Patlabor - Kamubakku MiniPato another screen problem #17061
Comments
This still happens. Checked the dump with renderdoc and the vertex data of the "missing" draw call is full of NaNs after the vertex shader. The other draws look normal. This is very odd because the position data is the same, and the matrices are also the same, except a small tweak to pos. The only other change in the UBOs is small tweaks to u_depthRange and u_cullRangeMin/Max. Really struggling to see what could cause NaNs here... Well, I suppose we might be triggering the range culling. Does seem to be the case. Same thing happens in OpenGL and D3D11. D3D9 fails entirely but meh. |
v1.16.6-333-gecab50346 still happens |
Tiny adjustments to the range Z culling range makes the GE dump work, so I think this is a precision issue where our culling limits are just a smidge too tight. This single change is enough (on Vulkan): |
Range culling (which we'll just call culling in the setting name) still is problematic enough that it can be useful to have this way to turn it off as an escape route. Since disabling it can break some games like famously TOCA, it needs to be under speedhacks, though likely the performance change is minimal. See for example #17061
This can now be worked around with the new setting. Pushing forward to the next version, since any change to the culling will need a lot of testing. |
What mean "Disable culling" ? |
I guess "Triangle removal outside of bounds" or something would be more accurate, but actually explaining the setting doesn't fit in a line... The PSP will remove triangles that have corners that are either outside an X/Y range of 0..4096x0..4096 (offset by the offset register), or outside a Z range of 0 to 1. Some games rely on this. We still have some very small inaccuracies in both mechanisms, so we now have a setting to turn this behavior off. If you have a better idea for a name for the setting let me know! :) |
I'll do this minor adjustment right after the 1.18 release. |
Game or games this happens in
ULJS00026
What area of the game
Game issue history: #16992
In-game
What happens
What should happen
This is softgpu
GE frame capture
ULJS00026-BAD2.zip
Platform
Windows
Mobile phone model or graphics card
Nvidia Geforce 710
PPSSPP version affected
v1.14.4-736-gebd8a6391
Last working version
#16992 (comment)
Graphics backend (3D API)
Vulkan
Checklist
The text was updated successfully, but these errors were encountered: