change FImage passed to TextureFormat to be const, it must not be changed becausing hashing is running threaded
remove early frees of intermediate image; this increases peak memory use
#preflight https://horde.devtools.epicgames.com/job/643ff4a3090323f9a3f7695e
#rb dan.thompson
[CL 25116608 by charles bloom in ue5-main branch]
This also fixes the missing include path for TextureFormat.Build.cs
#rb fabian.giesen
#rb charles.bloom
#preflight 6421fa27974dfaa53cb188e5
[CL 24808879 by Dan Thompson in ue5-main branch]
#fyi Dan.Thompson
Original CL Desc
-----------------------------------------------------------------
Plumb the mip layout down to the child texture ddc key versions as certain child formats need to know mip dimensions in order to know if aspects of the build affect the textures.
#rb fabian.giesen
#rb charles.bloom
#preflight 641378f03f3d31c94a2e86b5
#preflight 64149d297d1280ffe750d78e
[CL 24691763 by Dan Thompson in ue5-main branch]
Certain platforms that tile textures will tile non pow2 textures with mips different than non pow2 textures without mips, so we need to plumb down information about the mip chain to the tiling texture formats.
#rb fabian.giesen
#preflight 64068553aa00423335f30765
[CL 24546549 by Dan Thompson in ue5-main branch]
TextureFormatOodle is the only format that returns true for CanAcceptNonF32Source(), which allows the build system to occasionally avoid converting to an F32 input to the compressor. However, the ChildTextureFormat for offline platform processing did not forward this function so this conversion was happening unnecessarily.
This manifested as a DDC determinism issue with the PreEncodeHash when enabling shared linear encoding, where the output mip data would be the same (as the F32 conversion would round trip without change), however the input to the convertor would change between platforms.
Since Oodle is the only format that routes this, we can invalidate only this format and avoid a worldwide rebuild.
#rb charles.bloom
#preflight 638fcd007e0feab0b77ad3f3
[CL 23419050 by Dan Thompson in ue5-main branch]