docs(terrain): trace shade cache population
This commit is contained in:
+11
-2
@@ -1611,8 +1611,17 @@ to zero. The profile-bank region starts at subobject `+332`: every one of the
|
|||||||
100 banks has a 116-byte header followed by a 96-byte initialized stream, hence
|
100 banks has a 116-byte header followed by a 96-byte initialized stream, hence
|
||||||
the recovered 212-byte stride. The byte selected from each table entry is
|
the recovered 212-byte stride. The byte selected from each table entry is
|
||||||
therefore a bank index into a constructor-owned, fixed 100-bank region. This
|
therefore a bank index into a constructor-owned, fixed 100-bank region. This
|
||||||
proves the cache's allocation layout; it does **not** yet identify the code that
|
proves the cache's allocation layout. Its population path is also now located.
|
||||||
populates individual entry records from map resources.
|
`Terrain.dll` RVA `0x10280` resets the count, recreates the base entries from
|
||||||
|
the 28-byte stream at parent `+756`, and assigns bank zero. RVA `0x12e20`
|
||||||
|
copies one `0xd4`-byte profile header into bank `profile_count`, increments that
|
||||||
|
count, and remaps supplied keys to 28-byte records through the entry table. A
|
||||||
|
mapped record is stored as `profile_record_base + 28 * record_index` with the
|
||||||
|
new bank byte; a mapping whose second index is `-1` stores only the profile
|
||||||
|
ordinal, below `0x1000`, and is deliberately rejected by the lookup routine.
|
||||||
|
This explains the runtime sentinel without interpreting it as a missing WEAR
|
||||||
|
row. The input map is not yet tied to a named on-disk stream, so this proves the
|
||||||
|
cache builder's mechanics but not its complete asset-to-profile mapping.
|
||||||
|
|
||||||
On success the method returns the shared result view at cache offset `+24`, not
|
On success the method returns the shared result view at cache offset `+24`, not
|
||||||
the stored-record pointer and not a WEAR row. Thus the dispatcher's observed
|
the stored-record pointer and not a WEAR row. Thus the dispatcher's observed
|
||||||
|
|||||||
Reference in New Issue
Block a user