Our cook took 51 minutes. It now takes 9. Here is the order in which the wins arrived, including the ones that did not.
I started by optimising shader compilation, because that is what the profiler showed as the largest single stage and because it is the interesting problem. Two weeks later I had it down by four minutes, which was real work and almost entirely wasted, because the largest single stage was not the problem. The problem was that we were cooking assets nothing referenced.
An asset audit found 2,300 assets in the project that no cooked map referenced: abandoned prototypes, a full duplicate of the character set from a naming convention change, and 400 megabytes of source textures somebody had checked into the content directory rather than the art depot. Deleting them took the cook to 22 minutes in an afternoon.
The rest came from a validation gate on submit, so it never grows back. Every submission is checked for naming, scale, texture budget and orphan status, and a submission that fails is rejected with a message that says which rule and how to fix it. The artists hated it for a month and then started asking for more rules, because a rejection at submit costs two minutes and a rejection at cook costs the whole team an hour.





