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

Changed FPS limiter GUI constraints #139

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

trudnorx
Copy link

@trudnorx trudnorx commented Feb 5, 2024

Addresses #138 by:

  • Setting the FPS limiter GUI's constraints to 0.1-1000.

Notes:

  • I tested that extremely low FPS limits down to 0.1 worked correctly without causing additional issues (not on my build).
  • I didn't test high FPS limits (>166).
  • I didn't test building my changes.

@trudnorx
Copy link
Author

trudnorx commented Feb 5, 2024

However, after further testing I find that:

  1. Some games load extremely slowly with low FPS limits. Others aren't affected at all. This is a game-related issue and occurs with other FPS limiters too (not just Special K).
  2. The Special K settings window has trouble handling input; inputs are lost when foreground FPS limit is extremely low, even when the game is still handling inputs correctly. This also affects whether the GUI even appears; it can take multiple key presses. This can make it difficult for the user to change foreground FPS to a higher value once again after having limited it to a very low value.
  3. The Special K settings window's FPS is limited along with the game's. This can also make it difficult for the user to change foreground FPS to a higher value once again after having limited it to a very low value.
  4. Extremely low background FPS causes no issues, other than (1) if loading in the background and slow alt-tabbing.

Possible solutions:

  1. Improve functioning of Special K GUI to avoid issues 2 and/or 3, or,
  2. Allow user to specify extremely low foreground FPS values only after ticking a check box, or,
  3. Constrain minimum foreground FPS to a value like 5-10. Minimum background FPS 0.1-1.

@Aemony
Copy link
Contributor

Aemony commented Feb 5, 2024

Yeah, the current minimum limit of 11 or whatever it is is due to the various issues that can occur if it's too low.
Special K used to support arbitrary framerates in the limiter, but over the years it was constricted to improve the user experience.

A proper fix would probably be to move all of Special K's ImGui input processing over to its modern method. For context, a few years ago ImGui changed the way it processes input entirely to be event-based instead of frame-based to improve compatibility in various scenarios -- in particular RDP and touch-based sessions where "mouse input" works entirely different.

Special K updated to a newer ImGui codebase in 2023 but its input processing was never migrated (probably due to SK using a heavily customized one), so right now it's using ImGui's classic processing in a sort of compatibility mode.

@marat569
Copy link

marat569 commented Feb 5, 2024

I remember kal made it 12 because he'd try to input 120 either with his controller; and constnatly get like 1 or something

idr the details 100%; but yea it was because kal kept running into issues inputting 120; and went "nobody really needs fps under 12 anyway"

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

Successfully merging this pull request may close these issues.

3 participants