Files
bgfx/src
Quaylyn Rimer 02e04fb458 Optimize NonLocalAllocator: sorted vector + immediate coalescing (#3593)
Replace stl::list (tinystl::vector with O(n) push_front) with a sorted
stl::vector free list that maintains address-order invariant.

Key improvements:
- free(): uses bx::upperBound for O(log n) sorted insertion + immediate
  adjacent-block coalescing instead of O(n) push_front with deferred merge
- compact(): O(1) check (m_used empty?) instead of O(n log n) sort +
  O(n) linear merge pass on every call
- alloc(): first-fit scan over cache-friendly contiguous memory instead
  of pointer-chasing through fragmented list
- add(): sorted insert with coalescing via bx::upperBound, same as free()

Uses bx::upperBound from the bx foundation library for binary search,
no std:: usage. Added operator> to Free struct for bx::compareAscending
compatibility.

The public API and behavioral semantics are unchanged. All existing
callers (dynamic index/vertex buffer allocators, uniform cache store
allocator) continue to work identically.
2026-02-17 19:27:10 +00:00
..
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-02-08 01:45:18 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2025-11-06 17:21:53 -08:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2013-02-21 21:07:31 -08:00
2026-02-08 01:46:54 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00
2026-01-14 16:26:51 +00:00