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]
#fyi Dan.Thompson
Original CL Desc
-----------------------------------------------------------------
Cache TextureFormat on the BuildSettings so we don't have to look through the TPM whenever we want it.
#rb charles.bloom
#preflight 638f926c5624e6da5e0afa93
#preflight 638fa3c05624e6da5e12c8b9
[CL 23415924 by Dan Thompson in ue5-main branch]
1. Whether the source mips detects alpha
2. Several hashes to track the state of data at various stages of the build process.
Move the r.SharedLinearTextureEncoding out of the ConsoleManager as that's The Old Way.
Rename TextureDerivedDataVersion for uniqueness.
#rb devin.doucette
#rb charles.bloom
#preflight 6377fca7815e4b9b75681765
[CL 23206768 by Dan Thompson in ue5-main branch]
todo for the future to separate x/y mip gen clamp/wrap
#jira UE-162283
#preflight 63612d38ef6d25c67459c5ed
#rb alexander.suvorov
[CL 22921412 by charles bloom in ue5-main branch]
has no effect on 2x2 or angular mip gen
#rb dan.thompson
#preflight 63600a0ee86070572fd6cd14
#jira UE-162283
[CL 22868971 by charles bloom in ue5-main branch]
caused reduced length normals, which then bends them when we drop components for compression in BC5 or ASTC
don't change existing content, only normalize when new option bNormalizeNormals is enabled
note that ISPCTexComp is inconsistently doing normalization, no other tex formats do
#preflight 632270e0a514fd1e3751a141
#rb fabian.giesen
[CL 22028968 by charles bloom in ue5-main branch]
fix the case where dest is a partial mip chain, previously failed
fix previously logged warning but made output with no composite
allow nonpow2 or different aspect composite texture
textures where no stretch is required make the same output as before
#rb alexander.suvorov, fabian.giesen
[CL 21960074 by charles bloom in ue5-main branch]
Primary Components:
DDC2 texture build input/output revamped to support future FDerivedData references where the bulk data remains in the Zen server during cooks.
Tiling code is separated out in to ITextureTiler interface so that tiling can be done without calling FChildTextureFormat::CompressImage[Ex]
Adding mip dimensions to GetMipCountForBuildSettings
#rb fabian.giesen, zousar.shaker
#preflight 6304f87f516bef57ffada18d
[CL 21511157 by Dan Thompson in ue5-main branch]