Skip to content

Changed FPS limiter GUI constraints - #139

Open
trudnorx wants to merge 2 commits into
SpecialKO:mainfrom
trudnorx:fix-fps-gui
Open

Changed FPS limiter GUI constraints#139
trudnorx wants to merge 2 commits into
SpecialKO:mainfrom
trudnorx:fix-fps-gui

Conversation

@trudnorx

@trudnorx trudnorx commented Feb 5, 2024

Copy link
Copy Markdown

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.

Signed-off-by: trudnorx <42674312+trudnorx@users.noreply.github.com>
@trudnorx

trudnorx commented Feb 5, 2024

Copy link
Copy Markdown
Author

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.

Signed-off-by: trudnorx <42674312+trudnorx@users.noreply.github.com>
@Aemony

Aemony commented Feb 5, 2024

Copy link
Copy Markdown
Member

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

marat569 commented Feb 5, 2024

Copy link
Copy Markdown

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