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

softgpu: Track dirty vs really dirty per buffer #15400

Merged
merged 1 commit into from
Feb 13, 2022

Conversation

unknownbrackets
Copy link
Collaborator

When games draw and display with a frame lag, it becomes important that we indicate really dirty for the correct buffer. Since some triple buffer, this attempts to track at the buffer level using 1024 byte granularity.

May help #15062. Fixes black screens, at the very least, in some games such as Brave Story.

-[Unknown]

When games draw and display with a frame lag, it becomes important that we
indicate really dirty for the correct buffer.  Since some triple buffer,
this attempts to track at the buffer level using 1024 byte granularity.
@unknownbrackets unknownbrackets added this to the v1.13.0 milestone Feb 12, 2022
@hrydgard hrydgard merged commit 83318c5 into hrydgard:master Feb 13, 2022
@unknownbrackets unknownbrackets deleted the softgpu-frameskip branch February 13, 2022 15:16
@ghost
Copy link

ghost commented Feb 13, 2022

Buildbot is not updated. I cannot test this commit.

@hrydgard
Copy link
Owner

I pinged orphis about the buildbot.

@ghost
Copy link

ghost commented Feb 14, 2022

I can confirm this fixes my issue #15062

But question is why the fps is become 15/30 fps if I use frameskipping x1 and got 50/60 fps if no frameskipping?

@unknownbrackets
Copy link
Collaborator Author

Currently, the software renderer (unless you have frameskip enabled) ignores the game FPS and pushes 59.97 frames each second. Whatever game you play, you will always see 60 as the FPS because of this. This is really what the PSP did as well, essentially it always renders duplicate frames to 60 FPS.

When you turn on frameskip, it stops doing this. Thus, 50/60 immediately becomes 25/30 and then goes down to 15/30.

-[Unknown]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants