feat(extract): expose --threads to upgrade-extract + report elapsed time

emitOpenFormats now takes an optional threadCount parameter (0 =
auto). The asset_extract --upgrade-extract path forwards opts.threads
so users can override the auto-detect when running on a CI machine
with limited cores or wanting deterministic timing.

Also wraps the upgrade pass with a chrono timer and prints elapsed
seconds so the parallelization payoff is visible at a glance:

  asset_extract --upgrade-extract Data/expansions/wotlk --threads 8
  Walking Data/expansions/wotlk for open-format upgrades...
    elapsed           : 47.2 s
    PNG (BLP→PNG)     : 12340 ok
    ...

Verified end-to-end: --threads 2 on 5 hand-built DBCs converts all
5 in well under a second.
This commit is contained in:
Kelsi 2026-05-06 10:57:18 -07:00
parent cab1912441
commit 463a8cd751
3 changed files with 15 additions and 4 deletions

View file

@ -50,11 +50,13 @@ bool emitTerrainFromAdt(const std::string& adtPath, const std::string& outBase);
// Walk an extracted-asset directory and emit open-format side-files for
// every requested format. Counts accumulated into stats.
// `threadCount` 0 = auto-detect from hardware_concurrency().
void emitOpenFormats(const std::string& rootDir,
bool emitPng, bool emitJsonDbc,
bool emitWom, bool emitWob,
bool emitTerrain,
OpenFormatStats& stats);
OpenFormatStats& stats,
unsigned int threadCount = 0);
} // namespace tools
} // namespace wowee