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

Performance: tweak the settings on the max physics dt slider to allow for optimal settings #175

Closed
JonnyOThan opened this issue Jan 6, 2024 · 7 comments
Labels
kspPerformance Possible performance improvement in KSP kspQoL Quality of life modification
Milestone

Comments

@JonnyOThan
Copy link
Contributor

The max physics dt slider in the UI has a minimum value of 0.03, while the fixed timestep is 0.02. This means that if the game frames are taking longer than 30ms, Unity will run 2 fixed updates on every other frame (I.e. 3 fixed updates every two frames). This degrades the framerate.

It’s possible to set the max physics dt to 0.02 directly in the settings cfg (as long as you don’t open the settings ui again) and it will improve performance at the expense of physics time running slower than real time.

Would it be possible to get KSPCF to tweak the UI slider to allow for 0.02 to be set directly there?

@gotmachine gotmachine added kspQoL Quality of life modification kspPerformance Possible performance improvement in KSP labels Jan 6, 2024
@gotmachine
Copy link
Contributor

Sounds reasonable to have as an option, and shouldn't be too hard to implement.

gotmachine added a commit that referenced this issue Jan 6, 2024
… : Allow a min value of 0.02 instead of 0.03 for the "Max Physics Delta-Time Per Frame" main menu setting. This was already possible by manually editing the `settings.cfg` file, but changes would revert when going into the settings screen.
@JonnyOThan
Copy link
Contributor Author

JonnyOThan commented Jan 6, 2024

wahoo! Maybe the settings.cfg should include some language about WHY you might want to set max physics dt to 0.02?

(I can certainly do this….sometime…)

@gotmachine
Copy link
Contributor

Well the readme has a link to this issue. I doubt adding an abstract on the matter in the config file will help anyone.
Ideally, such an abstract would be in a tooltip over the in-game control, but I'm not sure how difficult this would be to add...

@JonnyOThan
Copy link
Contributor Author

Oh I love the tooltip idea. There's a lot of misconceptions about what this value actually does.

@gotmachine
Copy link
Contributor

What do you think of :

How the game handle CPU bottlenecked situations, relevant with large part count vessels :
- Lower value : higher and smoother FPS, but game time might advance slower than real time
- Higher value : lower and choppier FPS, but game time will advance closer to real time

@JonnyOThan
Copy link
Contributor Author

Works for me.

@gotmachine
Copy link
Contributor

image

@JonnyOThan JonnyOThan added this to the 1.34 milestone Jan 27, 2024
JonnyOThan added a commit that referenced this issue Jan 30, 2024
* New KSP QoL/performance patch : [**LowerMinPhysicsDTPerFrame**](#175) : Allow a min value of 0.02 instead of 0.03 for the "Max Physics Delta-Time Per Frame" main menu setting. This was already possible by manually editing the `settings.cfg` file, but changes would revert when going into the settings screen.

* Add tooltip describing the "Max Physics Delta-Time Per Frame" main menu setting

* merging master to dev (#181)

* zh-cn localization for ManufacturerFixes.cfg (#178)

* Remove ENABLE_PROFILER define that got added recently

---------

Co-authored-by: zhangyuesai <zhangyuesai@live.com>

* Fix #182: ModulePartInventory now accounts for changes to a part's mass or volume
-for example, changing a part's variant (rcs thruster blocks, structural tube) or its resource level could change its mass, but when you store it in inventory the mass would always use the value from the prefab

* oops, revert a couple changes to the csproj that made it into the last commit by accident

* Fix #185: calculate the correct mass for parts when picking them up off the ground in EVA construction

* Fix #104 : set dead kerbals to missing when loading a game and respawning is enabled

* Standardize spaces for indent in .editorconfig and add it to the SLN
(note personally I'd prefer tabs for indents, but all the existing code in here that didn't come from me uses spaces and consistency is more important)

* Change tabs -> spaces in the few files that used it
Whitespace-only change.
(note most of these were originally authored by me, but the project as a whole uses spaces pretty consistently)

* Fix #180: add ZeroCostTechNode patch

* Better editor undo redo (#176)

* BetterEditorUndoRedo : Exploratory fix for undo/redo state, doesn't work because of VesselCrewManifest side effects
See #172

* BetterEditorUndoRedo : functional, obvious issues fixed, still likely to cause side effects.

* disable BetterEditorUndoRedo by default

---------

Co-authored-by: JonnyOThan <jonnyothan@gmail.com>

* PAWGroupMemory is no longer per-window, but rather per-group (#186)

* Fix #50: PAWGroupMemory is no longer per-PAW, but stores the expansion state for all windows and is not cleared on scene changes
-possible future work: persist the collapse state to disk

* collapse or expand PAW groups when the PAW is shown

* Fix #179: ModulePartVariants now applies node position changes in all scenes

* enable BetterEditorUndoRedo by default

* Merge master -> dev (#187)

* zh-cn localization for ManufacturerFixes.cfg (#178)

* Remove ENABLE_PROFILER define that got added recently

---------

Co-authored-by: zhangyuesai <zhangyuesai@live.com>

* update readme with the new fixes

---------

Co-authored-by: gotmachine <24925209+gotmachine@users.noreply.github.com>
Co-authored-by: zhangyuesai <zhangyuesai@live.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kspPerformance Possible performance improvement in KSP kspQoL Quality of life modification
Development

No branches or pull requests

2 participants