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

"Motion blur" - LCD persistence shader #16522

Closed
wants to merge 2 commits into from
Closed

Conversation

iota97
Copy link
Contributor

@iota97 iota97 commented Dec 7, 2022

Well, should help testing if we broke it at least, 2008 feels...

@hrydgard
Copy link
Owner

hrydgard commented Dec 7, 2022

It's not really motion blur (that requires motion vectors), more like image persistence or slow LCD. So maybe just call it "LCD simulation"? :)

Although it is true that back in the PS2 days, people did call this kind of thing motion blur.

@hrydgard hrydgard changed the title Motion blur "Motion blur" - LCD persistence shader Dec 7, 2022
@hrydgard
Copy link
Owner

hrydgard commented Dec 7, 2022

Good test case, I'll merge when PPSSPP has been fixed so it works :)

@hrydgard hrydgard added this to the v1.14.0 milestone Dec 7, 2022
@hrydgard hrydgard marked this pull request as draft December 7, 2022 22:21
@hrydgard hrydgard added the User Interface PPSSPP's own user interface / UX label Dec 7, 2022
@hrydgard
Copy link
Owner

hrydgard commented Dec 8, 2022

Just tried it on Vulkan, seems to work perfectly fine when alone or last in the list. Other positions ... not so much :) For example, try putting it before Bloom.

Not sure if we should simply regulate where it can appear, or fix it somehow...

@jcchikikomori
Copy link
Contributor

jcchikikomori commented Dec 8, 2022

Best test scenario for this is Tekken 6. I attempt to fake the motion blur experience with the PS3 & the Arcade machines, including this texture pack. It's almost 1:1 with the PS3 but HD

https://github.com/kharij/Tekken-6-HD-Texture-Pack

ULUS10466_00035

@jcchikikomori
Copy link
Contributor

It's not really motion blur (that requires motion vectors), more like image persistence or slow LCD. So maybe just call it "LCD simulation"? :)

Although it is true that back in the PS2 days, people did call this kind of thing motion blur.

That's what it calls like huh.. I called it the "motion blur" way back in my childish days, but not confidently when Crysis came out with the actual motion blur

@iota97
Copy link
Contributor Author

iota97 commented Dec 9, 2022

I really thought I had tested Vulkan too, my bad.

Anyway Vulkan works fine, OpenGL was broken in: bd674c4.

The previous frame is in sampler2, and get pushed to queries:

queries.push_back({ &samplerLocs_[2], "sampler2" });

After that commit the check is on samplers_ rather than queries (reverting just this change on the commit fix it):

if (i < (int)samplers_.size()) {

I have no idea why this was changed, so I'll leave the fix to you :)

@hrydgard
Copy link
Owner

hrydgard commented Dec 9, 2022

Oh interesting, I'll fix it up.

And, I think I will simply enforce that this type of shader lives at the end of the shader list, and only one is allowed. Not gonna make very nice UI for it, it'll just be forced for now.

@hrydgard
Copy link
Owner

hrydgard commented Dec 9, 2022

I'm replacing this PR with #16531, which includes the commits from this one.

@hrydgard hrydgard closed this Dec 9, 2022
@iota97 iota97 deleted the blur branch December 9, 2022 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
User Interface PPSSPP's own user interface / UX
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants