astc-encoder
astc-encoder copied to clipboard
Split context to improve compile times
The ParallelManager utility is only needed in the entry layer, but is included everywhere in the internal header. This can be slow to compile due to the amount of C++ stdlib it pulls in, and the use of templates prevents the use of pre-compiled headers.
The PR splits the codec context into two - an inner context which excludes the thread control, and an outer context which uses it. This improves compile times by ~2 seconds (~20%) on Linux. Compiling Debug builds all three x86-64 binaries with -j16 drops from ~15s to ~12s.