mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-08 13:50:20 +00:00
A build grew its binding and allocation vectors one element at a time and tracked occupied binding numbers in a std::set; about 3.7% of the queue-0 worker on one title's hub was allocator time inside builds. The counts are known before the plan is walked, so the vectors are reserved once and the binding numbers go in a reserved vector. A build that binds BDA tables, or a fault buffer while APS5_LOOP_GUARD is set, can never be reused (noteReusable and NeverReusable refuse it), so it no longer copies its data words for a template refresh nor records the proof of its sampled textures for a Revalidate (the lookup log is still cleared). A fault-only build is reusable and keeps both. APS5_KEEP_TEMPLATE_RECORDS=1 keeps both for every build.