6 Years Ago
[D11] WIP experimental code to help speed up bootstrap type code; define IO and CPU tasks and the dependencies between them. The code will compute the optimal ordering (respecting dependencies) that maximises efficiency for both IO and CPU at the same time. Tasks are timed and data is fed back into the algorithm next time it is run, also the IO taks create data which can be used to build an asset bundle to eliminate file seeking; by running this and feeding all the information back in, and running it again, it should settle on the optimal arrangement of tasks. The system could use different data on different platforms to produce different runner code, giving the optimal performance on all devices. When code or assets change the system can be re-run to recalculate the optimal sequence, but as long as the dependencies haven't changed the old code will still function correctly, just won't be as fast as it could be. This is still in the development stages and yet to be tested with real game bootstrap tasks, which should need only minor modification to fit into the system's stubs. Also merged in changes from Matt's streaming branch to enable async file loading in the FileSystem backends.