Skip to content

Conversation

@JWSong
Copy link
Contributor

@JWSong JWSong commented Jan 21, 2026

Objective

Fixes #22571

Solution

Added FpsOverlaySystems system set and explicitly ordered customize_overlay to run before update_text. This gets rid of the internal ambiguity warnings and also gives users a way to order their own systems against the overlay.

Testing

Ran locally with ambiguity warnings enabled - no more internal overlay warnings. Didn't add a unit test since scheduling order is tricky to test in isolation.
To verify:

  • Enable ScheduleBuildSettings ambiguity warnings.
  • Add a user system that uses TextUiWriter.
  • Run an app with FpsOverlayPlugin and confirm no overlay-related ambiguity warnings.

@github-actions
Copy link
Contributor

Welcome, new contributor!

Please make sure you've read our contributing guide and we look forward to reviewing your pull request shortly ✨

@alice-i-cecile alice-i-cecile added this to the 0.18.1 milestone Jan 21, 2026
@alice-i-cecile alice-i-cecile added C-Bug An unexpected or incorrect behavior A-Diagnostics Logging, crash handling, error reporting and performance analysis X-Uncontroversial This work is generally agreed upon D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Jan 21, 2026
Copy link
Contributor

@ickshonpe ickshonpe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried this with the fps_overlay example but still got a reported conflict with update_time_values over FpsOverlayConfig.

FpsOverlaySystems::Customize should be scheduled before update_time_values as well, I guess?

@JWSong
Copy link
Contributor Author

JWSong commented Jan 22, 2026

Good catch, thanks! Pushed a follow-up that adds update_frame_time_values to UpdateText as well - tested with the example and the conflict seems to be resolved now.

Copy link
Contributor

@ickshonpe ickshonpe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No more conflicts, looks good!

.add_systems(Update, update_frame_time_values);
.add_systems(
Update,
update_frame_time_values.in_set(FpsOverlaySystems::UpdateText),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think there are any remaining problems, but I'm a bit unclear as to whether FrameTimeGraphPlugin is meant to be able to run independently of FpsOverlayPlugin or not. I guess it doesn't matter for this PR.

@alice-i-cecile alice-i-cecile added this pull request to the merge queue Jan 22, 2026
Merged via the queue into bevyengine:main with commit 271d0d0 Jan 22, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Diagnostics Logging, crash handling, error reporting and performance analysis C-Bug An unexpected or incorrect behavior D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Needs-Review Needs reviewer attention (from anyone!) to move forward X-Uncontroversial This work is generally agreed upon

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FPS Overlay plugin system ambiguity

3 participants