Open alice-i-cecile opened 2 years ago
I thought about two things:
One of the CLI commands could be something like bevy deploy
that applies all the optimizations and creates the optimized app packaged with all assets. But that could be its own issue or even an RFC.
There is already an issue about a Bevy CLI:
there is also https://github.com/bevyengine/bevy/issues/1885
Does compiling with PGO make sense? Perhaps it would "overfit" on the characteristics of the gameplay scenarios that the tests are run on, and perform worse in other circumstances. Advice on this might be worth a mention in this section either way.
I expect the advice would be "Don't compile with PGO unless you've comprehensively benchmarked that it helps and doesn't hinder", but I've not run any tests to see if that's right.
Yep, that's about my current feelings. PGO is a large domain, and comes with some significant tradeoffs and variability.
I think that the big wins here are likely to be found with schedule optimization, which is opaque to the compiler. But that's a problem for several years from now.
For history, I want to add some materials regarding PGO to the topic.
I am collecting all materials (benchmarks, articles, stories, showcases, etc.) about PGO across different applications here. I am sure there you would be able to find helpful information regarding PGO.
Related to the gamedev domains, I suggest you look at the following things:
Hope it could help with PGO story for Bevy.
How can Bevy's documentation be improved?
Several performance optimizations can be done just before final release, but are impractical for development.
As a starting point:
These should be documented in a single central place.