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

Settings cleanup: Speedhacks #16339

Closed
6 tasks
hrydgard opened this issue Nov 5, 2022 · 9 comments · Fixed by #16348
Closed
6 tasks

Settings cleanup: Speedhacks #16339

hrydgard opened this issue Nov 5, 2022 · 9 comments · Fixed by #16348
Labels
User Interface PPSSPP's own user interface / UX
Milestone

Comments

@hrydgard
Copy link
Owner

hrydgard commented Nov 5, 2022

I want to collect all pure speedhack graphics options in one section, and ideally make them so that "off" is always the safe choice. This would require flipping a few of them from the current state and renaming them.

This could cause some confusion though when people are reading older settings guides and stuff, so I'm not 100% I want to do all of this. One alternative could be just to throw all these in a speedhacks section without changing names/parity.

Anyway, this is what the full version of this change would look like:

  • Speedhacks
    • Skip buffer effects
    • Skip block readbacks
    • Vertex cache
    • Lazy texture caching
    • Low quality tessellation
    • Retain changed textures

Possibly frameskipping also belongs.

Note that currently, buffer effect is a multi-choice (for legacy reasons, since it now only has two values), while readbacks have the opposite parity and is called "Enable block transfer effects".

Normally I don't like negated settings too much ("Disable" instead of "Enable"), but for speedhacks it feels motivated...

@hrydgard hrydgard added the User Interface PPSSPP's own user interface / UX label Nov 5, 2022
@hrydgard hrydgard added this to the v1.14.0 milestone Nov 5, 2022
@ghost
Copy link

ghost commented Nov 5, 2022

Similar #13785

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 5, 2022

Oh oops, haha. Closing that one in favor of this one, since I added more detail this time.

@LunaMoo
Copy link
Collaborator

LunaMoo commented Nov 6, 2022

Just to note, there are games where enabling vertex cache is slowing things down, so it's not that clear of a speedhack.
Also a section called "speedhacks" might be like telling poor potato users to keep all of it enabled all the time without any investigation how it affects their games, so it feels like it would need some more UI text to discourage that.

@unknownbrackets
Copy link
Collaborator

I would also consider "Retain changed textures" a speedhack. It causes additional texture cache collisions in a small number of games, and makes many games slower, so kinda a weird speedhack. But it exists mainly because some games are significantly sped up by it. I suppose it might be a world for a compat setting, really, although that probably makes it even easier for it to break and not get tested...

I agree with reversing them but I think avoiding "disable" might help. Personally I like "Skip buffer effects" and "Skip rendering readbacks" as that's really what's happening, and I feel like "disable" with a checkbox can cause some backwardsness, but "skip", "ignore", "bypass", or "remove" type words don't have this problem.

Frameskip is an interesting one. I suppose it's a speedhack but it's a pretty common option, hm. It can cause bugs mostly due to readback interactions... it's just so common to see under graphics settings, I'd worry people won't find it.

Some other candidates:

  • Lowering spline/bezier curve quality.
  • Hardware model skinning? Kinda - almost a slowhack for most games? Murky one like retain changed textures.

-[Unknown]

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 6, 2022

Replacing Disable with Skip is a good idea, I will do that.

Thinking of just ripping out hardware skinning entirely, as only a few very old devices benefit from it at all, as far as I know. And skinning is so fast on modern devices anyway that it's likely not even worth implementing a more modern approach on Vulkan...

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 6, 2022

Regarding Retain changed textures, the current state is indeed super confusing so maybe a compat flag would indeed be better. Do we have a list of the games that benefit?

Also, spline/bezier is tricky to move two of three states into a speedhacks section ... I'm thinking of simplifying away one level then, only retaining medium and high, and calling it "Low spline quality" in the speedhacks section. Or removing it entirely as so few games are affected.

@unknownbrackets
Copy link
Collaborator

unknownbrackets commented Nov 6, 2022

I know there are a couple others but the one I'm most directly aware of is Popolocrois (it helps pretty significantly.) FF2 is one that looks like it would be helped, but isn't, as I recall.

Retain changed textures can theoretically help if a game uses the same (large) texture data as a sprite sheet with multiple palettes (many 2D games do this) or if it animates a subset of textures on that sprite sheet (fewer 2D games do this, but some especially ports do.) In practice, it really helps the most when a game does both, especially with multiple animated tiles in the spritesheet on different cycles (that's Popolocrois.)

I could be remembering wrong, but I think FF2 isn't helped because the animated tiles are off cycle in a way that doesn't frequently repeat the overall texture, unlike Popolocrois.

I know lowering spline quality can cause glitches in some games (I think that snowboarding one, for example), so I definitely consider it a speedhack. For weaker devices, it can really help... even software rendering, it probably helps a lot. But I think medium makes sense as a floor.

-[Unknown]

@ghost
Copy link

ghost commented Nov 7, 2022

I wonder if resolution for effects should consider added to speedhacks settings or just make it a compat flag 🤔

@hrydgard
Copy link
Owner Author

hrydgard commented Nov 7, 2022

It's not really a very good speedhack as generally any boost is quite small, and we already have a compat setting that forces it on, used for Outrun. Maybe we should indeed just enable it manually for the games that have very visible benefits...

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 a pull request may close this issue.

3 participants