Skip to content

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

Merged
unknownbrackets merged 6 commits intomasterfrom
last-frame-shaders
Dec 10, 2022
Merged

iota97's "Motion blur" - LCD persistence shader, plus fixes to make it work with OpenGL#16531
unknownbrackets merged 6 commits intomasterfrom
last-frame-shaders

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