Audit dependency cascades when disabling FPS and related threshold features #6

Closed
opened 2026-03-31 03:05:04 +00:00 by 44r0n7 · 2 comments
Owner

Disabling the FPS counter while FPS threshold coloring is enabled does not resolve cleanly.

Current behavior:

  • FPS can remain visible
  • the threshold control turns red because its dependency is no longer met

Needs design + implementation decision:

  • whether disabling a parent metric should also disable dependent features automatically
  • whether dependent values should be preserved for easy re-enable
  • whether commented-out values or some remembered state model makes sense

Likely broader than FPS:

  • similar dependency cascade cases should be audited across the app
Disabling the FPS counter while FPS threshold coloring is enabled does not resolve cleanly. Current behavior: - FPS can remain visible - the threshold control turns red because its dependency is no longer met Needs design + implementation decision: - whether disabling a parent metric should also disable dependent features automatically - whether dependent values should be preserved for easy re-enable - whether commented-out values or some remembered state model makes sense Likely broader than FPS: - similar dependency cascade cases should be audited across the app
Author
Owner

New regression after the latest dependency-cascade work:

Current behavior:

  • Disabling FPS / GPU stats / CPU stats no longer behaves correctly.
  • The user reports that disabling now effectively does nothing.
  • In a prior intermediate state, disabling FPS or GPU stats could produce orphan separators like || or ||| in the horizontal HUD, indicating that grouped children were still being rendered as empty slots.
  • The latest attempt to treat grouped HUD siblings as soft dependents appears to have over-corrected and broken the disable behavior entirely.

Context:

  • The original issue was that disabling fps, gpu_stats, or cpu_stats would leave threshold toggles red/invalid or require manual Live Preview -> Apply.
  • That was partially improved, but the behavior is still not stable.
  • There is likely a mismatch between MangoTune's schema dependency model and MangoHud's real horizontal/group rendering semantics.

When revisiting:

  • Re-test disable + re-enable for fps, gpu_stats, and cpu_stats in a horizontal HUD.
  • Verify preview updates immediately.
  • Verify no orphan separators remain.
  • Verify dependent toggles restore correctly without wiping threshold values/colors.
  • Consider whether the current soft-dependent mapping should be narrowed, reverted, or moved to a separate layout-aware path instead of the generic toggle helper.
New regression after the latest dependency-cascade work: Current behavior: - Disabling FPS / GPU stats / CPU stats no longer behaves correctly. - The user reports that disabling now effectively does nothing. - In a prior intermediate state, disabling FPS or GPU stats could produce orphan separators like `||` or `|||` in the horizontal HUD, indicating that grouped children were still being rendered as empty slots. - The latest attempt to treat grouped HUD siblings as soft dependents appears to have over-corrected and broken the disable behavior entirely. Context: - The original issue was that disabling `fps`, `gpu_stats`, or `cpu_stats` would leave threshold toggles red/invalid or require manual `Live Preview -> Apply`. - That was partially improved, but the behavior is still not stable. - There is likely a mismatch between MangoTune's schema dependency model and MangoHud's real horizontal/group rendering semantics. When revisiting: - Re-test disable + re-enable for `fps`, `gpu_stats`, and `cpu_stats` in a horizontal HUD. - Verify preview updates immediately. - Verify no orphan separators remain. - Verify dependent toggles restore correctly without wiping threshold values/colors. - Consider whether the current soft-dependent mapping should be narrowed, reverted, or moved to a separate layout-aware path instead of the generic toggle helper.
Author
Owner

Resolved by the recent threshold/dependency work. Parent metric toggles now disable and restore their remembered threshold toggles correctly, threshold value/color fields are preserved, and full-config replacement flows clear stale remembered dependent state so preset/profile/raw-editor/config-load paths do not poison later toggle behavior.

Resolved by the recent threshold/dependency work. Parent metric toggles now disable and restore their remembered threshold toggles correctly, threshold value/color fields are preserved, and full-config replacement flows clear stale remembered dependent state so preset/profile/raw-editor/config-load paths do not poison later toggle behavior.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: 44r0n7/mangotune#6