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

iota97's "Motion blur" - LCD persistence shader, plus fixes to make it work with OpenGL #16531

Merged
merged 6 commits into from
Dec 10, 2022

Conversation

hrydgard
Copy link
Owner

@hrydgard hrydgard commented Dec 9, 2022

This takes #16522 by @iota97 and adds a bunch of fixes, it now works with OpenGL.

For example, makes sure that shaders that use the previous frame are always at the end, and there's always only one.

Additionally fixes a lifetime issue.

@hrydgard hrydgard added this to the v1.14.0 milestone Dec 9, 2022
@hrydgard hrydgard added OpenGL User Interface PPSSPP's own user interface / UX labels Dec 9, 2022
@hrydgard hrydgard changed the title "Motion blur" - LCD persistence shader, plus fixes to make it work with OpenGL iota97's "Motion blur" - LCD persistence shader, plus fixes to make it work with OpenGL Dec 9, 2022
@hrydgard
Copy link
Owner Author

hrydgard commented Dec 9, 2022

Oh no, just noticed there's a strange flicker glitch in GTA's map screen when you use a usePrevFrame shader. Every second frame is sized a bit wrong. Seems we need to scale the prev-frame image somehow in some situations?

Anyway, not a regression, but also not ideal since the feature is now a bit more visible.

@unknownbrackets
Copy link
Collaborator

Hm, I guess I didn't think about the framebuffer size being different every other frame. Figured the output would be the same...

I will say, it's imaginable that someone designs a post-shader chain that uses the previous frame final output in not the final shader. Of course, if you just do that in a persistence shader and bloom afterward, you'll get the bloom adding up. So usually it won't make sense, probably for every case someone would use it for... but it isn't necessarily "broken."

Of course, there might be an argument for keeping around the previous input to this shader chain stage, which might (or might not) be more useful. Probably makes more sense for LCD simulation...

-[Unknown]

@unknownbrackets unknownbrackets merged commit 0a4e3a3 into master Dec 10, 2022
@unknownbrackets unknownbrackets deleted the last-frame-shaders branch December 10, 2022 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OpenGL User Interface PPSSPP's own user interface / UX
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants