Files
ARMSX2/pcsx2
jpolo1224 0fe5715336 GS: make the replacement diagnostics able to answer the question
The first version could not. LookupReplacementTexture runs once per NEWLY HASHED
texture, not per draw, so a whole session can be a few hundred calls -- and a
report threshold of 20k therefore printed once, at the very first lookup, and
never again. Two tester logs came back reading "0 hits, 1 misses" after 139 and
195 seconds of play, which cannot distinguish one lookup from twenty thousand.
That ambiguity was the whole answer they were supposed to give.

Three changes:

  - Report on a geometric schedule (1, 2, 4, 8 ... then every 4096) rather than a
    fixed threshold. Bounded whatever the rate, and dense at the start, which is
    where the answer usually is.

  - Print the first eight misses in full: the TEX0 hash, CLUT hash, dimensions
    and PSM actually asked for, plus whether the pack holds that same TEX0 under
    a DIFFERENT CLUT hash. That is the difference between "the pack does not have
    this texture" and "it has it, under another palette hash" -- and the latter is
    the usual answer for paletted UI art, which is what a Persona 3 FES font and
    menu panel are.

  - Log preloading, paltex, async and upscale once at map load. Those decide
    whether a lookup is ever ATTEMPTED rather than whether it matches; a pack that
    indexes thousands of files and is then never consulted looks identical from
    outside to one that misses every time.
2026-08-21 17:58:03 -04:00
..