mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-21 18:19:19 +02:00
Add EU7 PACK v11 UTEX, section unload, and LRU streaming caches
Bake deduplicated section texture lists (UTEX) and read them at runtime so texture warm/prefetch no longer scans every instance. Evict PACK sections outside a 16 km keep ring and cap mesh/nodedata/texture warm caches to stop RAM and apply cost from growing without bound during long fast camera flight. - Bake v11 (format=4): UMES + UTEX + CHNK; mesh/texture ordering by frequency - Runtime: incremental UTEX warm, adaptive apply slices, preempt/catchup tuning - Unload: track instances per section, Region erase, pack pool release - LRU: mesh/nodedata (2000, ref-counted), warmed textures (2048) - Bench/diagnostics: unload and cache eviction counters - Fix pack instance erase in Region; resolve duplicate helper symbols
This commit is contained in:
@@ -853,6 +853,30 @@ Powtórzone chunk_count razy:
|
||||
Runtime: worker czyta `read_pack_section_chunk_load(row, col, chunk_index)` z O(1) seek.
|
||||
Sekcje v9 (format=2) i v7 flat pozostają kompatybilne (`chunk_count` implicit = 1).
|
||||
|
||||
### Format sekcji — v11 UTEX (`kPackSectionFormatV11 = 4`)
|
||||
|
||||
Rozszerzenie v10: po UMES deduplikowana lista ścieżek tekstur (`texture_file`), posortowana po częstotliwości.
|
||||
|
||||
```
|
||||
uint8 section_format — musi być = 4
|
||||
uint32 solo_count
|
||||
uint32 inst_count
|
||||
uint32 unique_mesh_count
|
||||
uint32[unique_mesh_count] string_id
|
||||
|
||||
uint32 unique_texture_count
|
||||
uint32[unique_texture_count] string_id — texture_file (pomija none/make:/@/#/.e3d)
|
||||
|
||||
uint32 chunk_count
|
||||
Powtórzone chunk_count razy:
|
||||
uint32 chunk_model_count
|
||||
uint32 chunk_byte_offset
|
||||
|
||||
[payload chunków]
|
||||
```
|
||||
|
||||
Runtime używa UTEX do prefetch/warm tekstur bez skanowania wszystkich instancji.
|
||||
|
||||
---
|
||||
|
||||
## 30. PROT — prototypy modeli (v8+)
|
||||
|
||||
Reference in New Issue
Block a user