ppsspp
ppsspp copied to clipboard
(Android) (OGL/VK) Tekken 6 Bonus Stage Nancy laser beam is invisible
Game or games this happens in
ULES01376
What area of the game
ppsspp v1.13.1 Nancy laser beam is invisible.

ppsspp v1.12.3 Nancy laser beam is visible

What happens
Nancy laser beam is invisible.
What should happen
Nancy laser beam should be visible.
GE frame capture
Platform
Android
Mobile phone model or graphics card
Redmi Note 9 Android 12 Helio G85 Mali-G52 GPU
PPSSPP version affected
v1.13.1
Last working version
v1.12.3
Graphics backend (3D API)
Vulkan/OpenGL
Checklist
- [X] Test in the latest git build in case it's already fixed.
- [X] Search for other reports of the same issue.
- [X] Try resetting settings or older versions and include if the issue is related.
- [X] Try changing graphics settings to determine if one causes the glitch (especially speed hacks or enhancements/replacements.)
- [X] Include logs or screenshots of issue.
Thanks for the report! Likely related to the new line drawing method.
rRootage seems impacted according to Panderner on Discord:

Here: RROO00643.zip
Tekken 6 is crashing on the latest build if set to skip buffers rendering!
Yeah, I'm not testing much with it off, I highly recommend to turn on buffered rendering. But I'll fix it of course.
Tekken 6 is crashing on the latest build if set to skip buffers rendering!
Juice 2 is also crashing using skip buffers rendering and some other games I tried.
Yeah, I'll get around to fixing that soon.
So the issue here is that the line is actually drawn, it's just so ridiculously thin that it doesn't cover more than a pixel or two, so something is wrong with the line expansion math. The GE dump reproduces the error perfectly.
The following change makes it look good, which is of course a ridiculous change to make:
Vec2f addWidth = Vec2f(-vertical, horizontal).Normalized() * 10000.0f;

The beam looks like this on a PSP:

The software renderer (with #16066) gets close, just slightly off:

The line drawn at 5780/5813 uses addWidth: 0.985653,0.168787 dx/dy: 0.004167,0.007353, or 0.00410721605 width for the rectangle. That's slightly less than 1 pixel. In renderdoc, it's the last indexed draw in the first render pass.
But in the render doc the positions are not different, however. There's only two unique xyzw values going in or out of the vertex shader. Which now makes sense, because of course, w. That's why it's not adding anything after transform. D'oh.
-[Unknown]
Tekken 6 is crashing on the latest build if set to skip buffers rendering!
I can exibit this issue again in the recent build.
crash on skip buffers? I'll get that fixed soon.
crash on skip buffers? I'll get that fixed soon.
Yes.