fwiw, finally got around to testing the cache update. I create a dir based on the current resolution in use, as this will affect the final size of scaled images. This way, if you change resolution, or go windowed at some funky res'n, images will be rescaled and re-cached as appropriate. Under this, game specific subdirs are created on demand. Within each game specific dir the assets are cached based on type, etc. I also added code to search for assets in related (clone/parent/etc) games if we come up empty handed otherwise, in order to maximise the user experience. As part of this, I also added a low-pri background worker thread to produce hi-quality versions of the scaled images and write to the cache. The high-quality scaling is a relatively slow process, so it is kicked off after some minor delay, in the background. In order to present something to the user as quickly as possible, a low quality scaled image is quickly generated and used, then swapped as soon as the better image is available. The swap should be mostly unnoticeable (I haven't noticed it myself).
Overall, the startup time, when there are previously cached images, is noticeably improved.