You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(dat): move dat read/decompress/decode off the render thread
QueueDecode ran the whole pipeline - dat mapping, MFT parse, custom
Huffman decompression, DXT decode - inline inside the DX task, which
is drained synchronously on the game's render thread once per frame.
A cold first-time MFT parse (~150k-entry hash table) or just a big/
compressed texture would visibly stall the game. Only the final GPU
upload actually needs the D3D device; move the rest onto the existing
worker thread pool (already used elsewhere in Resources) and only hop
back to the DX queue for MakeTextureFromArgb.
Also reserve the fileid_to_slot map before filling it and index rather
than range-for over the MFT hash table - in a debug build (checked
iterators), that loop over ~150k+ entries was a real chunk of the
one-time parse cost.
0 commit comments