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

[Windows/Android][Movie/MPEG?][Glitch]Some games appear 3 vertical lines on the movie scean. #13697

Open
nassau-tk opened this issue Nov 23, 2020 · 14 comments
Labels
GE emulation Backend-independent GPU issues
Milestone

Comments

@nassau-tk
Copy link
Contributor

What happens?

Some games appear 3 vertical lines on the movie scean.

Example)

  • Muso Orochi (Not Include Musou Orochi Sairin & 2 Special)
  • EXIT
  • EXIT2 (Kangaeru EXIT)

PLease,See attached screenshots.

What should happen?

These movies should draw correctly.

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

PPSSPP Ver.:1.10.3-1234
OS:Windows10(64-bit)Japanese
CPU:Ryzen7 3800X(8-core)
GPU:RADEON RX5700XT
Resolution:2560×1440
RAM:32GB

PPSSPP Ver.:1.10.3-1234
OS:Android 10.0
DeviceName:Samusung Galaxy S20 / SC-51A
CPU:Snapdragon865(Octa-core)
GPU:Adreno 650
Resolution:3200 x 1440 (Max)
RAM:12GB
ROM:128GB
ExternalStrage:microSDXC 512GB

[Muso Orochi]
muso_orochi_opening_movie

[EXIT]
EXIT_opening_movie

[EXIT2]
EXIT2_opening_movie

@Panderner
Copy link
Contributor

Still happens in 1x resolution @nassau-tk?

@nassau-tk
Copy link
Contributor Author

@Panderner

Oops!!
I forgot to write an usual information.:smile:

1x Resolution is not appear these 3 lines.
It will appear 2x Resolution and more.

@hrydgard
Copy link
Owner

Yeah, very typical of an issue when a game is not written to expect higher resolution. It draws the video in four separate strips but not quite matching coordinates. We might be able to hack around it, but it'll be ugly.

@hrydgard hrydgard added the GE emulation Backend-independent GPU issues label Nov 23, 2020
@hrydgard hrydgard added this to the v1.12.0 milestone Nov 23, 2020
@unknownbrackets
Copy link
Collaborator

At best we might be able to detect this is from a video and blit it directly...

-[Unknown]

@Panderner
Copy link
Contributor

This also affects Fate/unlimited codes.
Screenshot_2021-01-12-15-38-36-102_org ppsspp ppsspp

@Panderner
Copy link
Contributor

Panderner commented Apr 24, 2021

and also Kamen Rider games too:
Screenshot (14)

@Panderner
Copy link
Contributor

It seems v1.12.3-776-g1c18c172a making worse for affected games but only affects Direct3D 9 and Direct3D 11.
Screenshot (18)
Screenshot (19)

@hrydgard
Copy link
Owner

hrydgard commented Jan 31, 2022

That's #15339 , surprising.

Does the "Lazy texture caching" affect it?

Hm, there was a drawEngineCommon_->DispatchFlush(); lost in FlushImm, might be related? What game is that?

@unknownbrackets
Copy link
Collaborator

I moved the flush, DispatchSubmitImm does it now. Shouldn't be lost.

-[Unknown]

@Panderner
Copy link
Contributor

Does the "Lazy texture caching" affect it?

Lazy texture caching had no effect for between v1.12.3-770-gc1b8fb737 and v1.12.3-776-g1c18c172a

What game is that?

Fate: Unlimited Codes and Kamen Rider games (Climax Heroes OOO, Climax Heroes Fourze, and Super Climax Heroes)

@unknownbrackets
Copy link
Collaborator

Does it reproduce in a GE frame dump - yes would mean that a frame dump works in 770 but not in 776. If so, that would be very useful.

DispatchSubmitImm() and Execute_End() are the only changes, so it ought to be related to one of those, but I only just moved the flushes around. It already had FLUSHBEFORE...

-[Unknown]

@Panderner
Copy link
Contributor

Here's a GE Dump:
recording.zip

and Screenshot for GE Dump:
Screenshot (20)

@hrydgard
Copy link
Owner

@unknownbrackets I didn't realize this before, but FLUSHBEFORE seems to be a no-op in FastRunLoop! Doh. Can't believe we never noticed.

FLUSHBEFOREONCHANGE is implemented and works though, otherwise a lot of stuff would be broken.

@hrydgard
Copy link
Owner

hrydgard commented Jan 31, 2022

I think in a way it's actually right that we don't implement FLUSHBEFORE in FastRunLoop, don't want any additional check in there that we can live without, and since (except SIGNAL/FINISH) it's always used with EXECUTE, it can just be merged into the execution function. But we should kill the flag entirely then I guess.

Though SIGNAL/FINISH not flushing does seem suspicious, heh. (never mind, those aren't executed on their own)

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
Projects
None yet
Development

No branches or pull requests

4 participants