Skip to content
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

Texture glitch in persona 3 (vertex cache) #15032

Closed
3 of 5 tasks
KaiFujiro opened this issue Oct 19, 2021 · 43 comments
Closed
3 of 5 tasks

Texture glitch in persona 3 (vertex cache) #15032

KaiFujiro opened this issue Oct 19, 2021 · 43 comments
Labels
GE emulation Backend-independent GPU issues OpenGL
Milestone

Comments

@KaiFujiro
Copy link

KaiFujiro commented Oct 19, 2021

Game or games this happens in

ULUS-10512 - Persona 3 Portable (UNDUB)

What area of the game / PPSSPP

When I was in tartarus Tziah 147F

2021-10-19_18.37.33_00038_V.mp4

What should happen

the texture should be normal and there should be no glitch there

Logs

log.txt

Platform

Android

Mobile phone model or graphics card

J1 Ace J111F (Android 5.1.1)

PPSSPP version affected

v1.12.3-39-g16bf5197e

Last working version

v1.12.2-11-g7ba8ef3d3

Graphics backend (3D API)

OpenGL / GLES

Checklist

  • Test in the latest git build in case it's already fixed.
  • Search for other reports of the same issue.
  • Try resetting settings or older versions and include if the issue is related.
  • Try without any cheats and without loading any save states.
  • Include logs or screenshots of issue.
@ghost
Copy link

ghost commented Oct 19, 2021

KaiFujiro a savestate on that area can help me reproduce this.
Kindly upload on github. ty :)

@hrydgard
Copy link
Owner

hrydgard commented Oct 19, 2021

Ah yeah, this is gonna be some side effect of #14833 , likely due to not enough support in the GL driver for something.

And yeah, a savestate, or a GE dump during the glitch, might be helpful.

@hrydgard hrydgard added the GE emulation Backend-independent GPU issues label Oct 19, 2021
@hrydgard hrydgard added this to the v1.13 milestone Oct 19, 2021
@KaiFujiro
Copy link
Author

Here
savestate.zip

@ghost
Copy link

ghost commented Oct 20, 2021

Unfortunately that save state doesn't work on me 🤔

@KaiFujiro
Copy link
Author

Unfortunately that save state doesn't work on me 🤔

because you need the same save data as the save state

@KaiFujiro
Copy link
Author

Ah yeah, this is gonna be some side effect of #14833 , likely due to not enough support in the GL driver for something.

And yeah, a savestate, or a GE dump during the glitch, might be helpful.

how to do a GE dump? what about the frame dump test in the ppsspp dev menu? and where is the dump file location?

@KaiFujiro
Copy link
Author

Unfortunately that save state doesn't work on me 🤔

because you need the same save data as the save state

or you can download save data from the internet and go to Tziah 147F with the save data you downloaded

@ghost
Copy link

ghost commented Oct 20, 2021

Unfortunately that save state doesn't work on me 🤔

because you need the same save data as the save state

or you can download save data from the internet and go to Tziah 147F with the save data you downloaded

I already have save data but when I load your save state it just return to start of the game.
do you have any cheats enable when you save that save state?

@KaiFujiro
Copy link
Author

Unfortunately that save state doesn't work on me 🤔

because you need the same save data as the save state

or you can download save data from the internet and go to Tziah 147F with the save data you downloaded

I already have save data but when I load your save state it just return to start of the game. do you have any cheats enable when you save that save state?

I didn't use the cheat when the save state was created

@KaiFujiro
Copy link
Author

or you can go to a different floor and use alice, then use the skill "Di3 for Me!", see if it works or not to see the glitch

@KaiFujiro
Copy link
Author

KaiFujiro commented Oct 20, 2021

I tried the ppsspp-v1.12.3-8-gc75784351 version and there is no texture glitch there

@KaiFujiro
Copy link
Author

error when uploading to github, so I uploaded this to google drive

https://drive.google.com/file/d/1gAxTBa_wS6_ttBc_nANrZPsSvtbkrFEc/view?usp=drivesdk

@anr2me
Copy link
Collaborator

anr2me commented Oct 20, 2021

how to do a GE dump? what about the frame dump test in the ppsspp dev menu? and where is the dump file location?

Use a browser to download the dump https://github.com/hrydgard/ppsspp/wiki/How-to-create-a-frame-dump

@unknownbrackets
Copy link
Collaborator

Yeah, that means c757843...16bf519, which almost definitely means #14833. If you want to be absolutely sure, try v1.12.3-21-g236d02999 - if that also has no texture glitch, then it's certain.

The save state was created with a virtual disc (i.e. extracted ISO), which I don't recommend using and might create its own unique bugs. It's a debugging feature. I recommend you save in game, switch to a CSO, and then try creating a new save state. It's even possible the bug might be gone (although that would still mean a bug with the virtual disc feature, that's definitely possible.)

I tried loading the save state with my own extracted ISO, but it crashed when trying to enter a battle.

A frame dump would make it even easier to reproduce the problem, though.

-[Unknown]

@KaiFujiro
Copy link
Author

ah okay, I'll give it a try and send the frame dump

@KaiFujiro
Copy link
Author

@ghost
Copy link

ghost commented Oct 20, 2021

Here:

https://drive.google.com/file/d/1ghfpYRoyQ3VqGtx72DifEzlTnCIOOONi/view?usp=drivesdk

Your ge dump capturing the wrong scence.
Screenshot_2021-10-20-17-00-35-955_org ppsspp ppsspp

This is the right scence you need to capture using ge dump.
Screenshot_2021-10-20-17-01-26-296_com android chrome

@ghost
Copy link

ghost commented Oct 20, 2021

@unknownbrackets what's the meaning of this?
Screenshot_2021-10-20-17-00-16-904_org ppsspp ppsspp

@KaiFujiro
Copy link
Author

Here:
https://drive.google.com/file/d/1ghfpYRoyQ3VqGtx72DifEzlTnCIOOONi/view?usp=drivesdk

Your ge dump capturing the wrong scence. Screenshot_2021-10-20-17-00-35-955_org ppsspp ppsspp

This is the right scence you need to capture using ge dump. Screenshot_2021-10-20-17-01-26-296_com android chrome

sorry, I will do it again

@KaiFujiro
Copy link
Author

Is it like this?

ULUS10512_0001.zip

@ghost
Copy link

ghost commented Oct 20, 2021

Is it like this?

ULUS10512_0001.zip

Here's the result
opengl
Screenshot_2021-10-20-17-33-32-531_org ppsspp ppsspp

@ghost
Copy link

ghost commented Oct 20, 2021

KaiFujiro Can you share your save data on this game?

@KaiFujiro
Copy link
Author

Is it like this?
ULUS10512_0001.zip

Here's the result opengl Screenshot_2021-10-20-17-33-32-531_org ppsspp ppsspp

how can it be like that, I'm sure that at that time the texture had a glitch

@KaiFujiro
Copy link
Author

I did a frame dump at the right time when the texture had a glitch

@KaiFujiro
Copy link
Author

KaiFujiro Can you share your save data on this game?

Yeah, sure

ULUS10512DATA00.zip

@ghost
Copy link

ghost commented Oct 20, 2021

Is it like this?
ULUS10512_0001.zip

Here's the result opengl Screenshot_2021-10-20-17-33-32-531_org ppsspp ppsspp

how can it be like that, I'm sure that at that time the texture had a glitch

Because my redmi note 9 is using opengl 3.2 that's why there's no glitch.

Here's the result using my mali-450 gpu phone.
Screenshot_2021-10-20-17-55-01

@KaiFujiro
Copy link
Author

Is it like this?
ULUS10512_0001.zip

Here's the result opengl Screenshot_2021-10-20-17-33-32-531_org ppsspp ppsspp

how can it be like that, I'm sure that at that time the texture had a glitch

Because my redmi note 9 is using opengl 3.2 that's why there's no glitch.

Here's the result using my mali-450 gpu phone. Screenshot_2021-10-20-17-55-01

ah like that

@KaiFujiro
Copy link
Author

So, can this problem be fixed?

@ghost
Copy link

ghost commented Oct 20, 2021

So, can this problem be fixed?

Yes of course it's a regression.

@KaiFujiro
Copy link
Author

just waiting for hrydgard/unknown to make it

@KaiFujiro
Copy link
Author

Ah yes, I tried it in another area, and experienced a texture glitch too, I assume that this texture glitch is on all floors of Tartarus, whether it's a small glitch, or a big one

@hrydgard
Copy link
Owner

Does the Vertex Cache setting affect the way it glitches?

@ghost
Copy link

ghost commented Oct 20, 2021

Does the Vertex Cache setting affect the way it glitches?

Yes vertex cache can cause this issue.
Here's the screenshot without vertex cache on my mali-450 gpu.
Screenshot_2021-10-20-19-29-15

@hrydgard
Copy link
Owner

OK, getting some bugs reported around the OpenGL vertex cache so it's likely just that then. We'll fix it soon.

@unknownbrackets
Copy link
Collaborator

I seem to recall there was some worry that the way we were uploading into the GL vertex cache might be unsafe, although was probably fine. It's been forced off until now.

-[Unknown]

@KaiFujiro
Copy link
Author

Yes, when I turn off the vertex cache the game doesn't have a glitch anymore, but there's a bit of lag there

@unknownbrackets unknownbrackets changed the title Texture glitch in persona 3 Texture glitch in persona 3 (vertex cache) Oct 21, 2021
@KaiFujiro
Copy link
Author

yeah, it's been fixed by turning off the vertex cache, thx everyone who helped

@unknownbrackets
Copy link
Collaborator

Using the savedata, I created a new working save state here:

#15032_ULUS10512_persona3_vertexcache.ppst.zip

For me, on Adreno 6xx and NVIDIA GTX 9xx, there are no issues with vertex cache on in latest git builds. I did find an assertion failure, though, which was a mistake - will push that up.

My guess is that an extra copy will be needed, at least on Mali. Currently, we decode directly into the push buffer memory (which should be local memory anyway on non-NVIDIA), then we upload that to the cached vert buffer, straight from the pushbuffer memory. Not sure why that would really be a problem...

-[Unknown]

@ghost
Copy link

ghost commented Oct 25, 2021

yeah, it's been fixed by turning off the vertex cache, thx everyone who helped

@KaiFujiro this should be fixed now in 09daace

Edit: No

@hrydgard
Copy link
Owner

@Gamemulatorer No I don't think that change will do it, there's something else going on.

@ghost
Copy link

ghost commented Oct 25, 2021

Now I can reproduce this issue on other games using my RN9.
Screenshot_2021-10-26-04-42-38-499_org ppsspp ppsspp
Screenshot_2021-10-26-04-42-47-721_org ppsspp ppsspp
Screenshot_2021-10-26-04-42-58-184_org ppsspp ppsspp

@hrydgard
Copy link
Owner

I removed the vertex cache again in OpenGL, so this should no longer be an issue.

@ghost
Copy link

ghost commented Oct 12, 2022

I removed the vertex cache again in OpenGL, so this should no longer be an issue.

This glitch can only reproduce in opengl 2.0 might be good to restore this in opengl 3.0+ devices?ヽ⁠(⁠。⁠◕⁠o⁠◕⁠。⁠)⁠ノ⁠.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
GE emulation Backend-independent GPU issues OpenGL
Projects
None yet
Development

No branches or pull requests

4 participants