47 Commits

Author SHA1 Message Date
dan thompson
be2778ff74 Clean up the texture format manager gathering function to clear up any possible mutex recursion.
#rb charles.bloom
#jira UE-214284
#rnx

[CL 33979756 by dan thompson in ue5-main branch]
2024-05-29 13:39:29 -04:00
dan thompson
c9b217a26e Fixed an issue with non pow 2 tiling on certain platforms, and in general cleaned things up. With the new platform preview I believe I've tested every possible combination of textures.
#rb fabian.giesen

[CL 33403876 by dan thompson in ue5-main branch]
2024-05-02 14:21:35 -04:00
dan thompson
0a6eb11037 Preview Platform Textures
-- Added Decode interface to texture formats to return to PC viewable formats.
-- Added Detile interface to return textures to linear layout for relevant platforms.
-- Reworked the IBuild "DDC2" texture build usage to be more straightforward for chaining multiple build steps (i.e. Encode -> Tile -> Detile -> Decode).
-- Added UI to the texture editor to select a target platform to view.
-- Fixed a bug with DDC2 and CPU Copy textures (they didn't work at all)
#rb Devin.Doucette, fabian.giesen, charles.bloom
#jira UE-149124

[CL 33116818 by dan thompson in ue5-main branch]
2024-04-19 16:57:52 -04:00
dan thompson
2ed61a6050 Updating FCompressedImage2D to NumSlices from SizeZ, for clarity.
Tested cooked build diff for sanity as this should only ever affect in-memory editor values.

#jira UE-149124
#rb fabian.giesen

[CL 31997496 by dan thompson in ue5-main branch]
2024-03-04 14:39:15 -05:00
louisphilippe seguin
36c722f3c4 Fix wrong printf parameters in checkf & ensuremsgf found in engine code
#rb Fabian.Giesen, Kirill.Zorin
#rnx

[CL 27519547 by louisphilippe seguin in ue5-main branch]
2023-08-31 08:56:30 -04:00
andriy tylychko
cac8a8865f complimentary to 26518156, avoiding deadlock on module loading, handles one more case
#rb danny.couture

[CL 26773750 by andriy tylychko in ue5-main branch]
2023-08-02 11:13:47 -04:00
andriy tylychko
7f17257bdb fixed TSAN potential deadlock report by unlocking FTextureFormatManagerModule mutex while loading modules
#rb danny.couture, charles.bloom

[CL 26518171 by andriy tylychko in ue5-main branch]
2023-07-21 13:37:05 -04:00
dan thompson
b361dacafb Clang specific cast warnings, and fixing an incorrect cast fix from last checkin.
#rb fabian.giesen
#preflight 646b9adb4130b0ce5038e725

[CL 25568727 by dan thompson in ue5-main branch]
2023-05-22 15:17:38 -04:00
bryan sefcik
da92084a12 Optimized out more private modules includes and dependencies.
#preflight 64627c382965f6ea8ea83bd6

[CL 25479683 by bryan sefcik in ue5-main branch]
2023-05-15 16:26:12 -04:00
charles bloom
420b6f6adb TextureCompressorModule : run hashing for metadata on an async task
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]
2023-04-19 17:29:39 -04:00
Dan Thompson
9a6a7a84d9 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, as well as note in the extended data whether the texture tiling is sensitive to LODBias so that textures that change layouts as a result of that are independent in the ddc.
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]
2023-03-27 16:39:53 -04:00
Dan Thompson
6acfb3256c [Backout] - CL24678894
#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]
2023-03-17 13:13:02 -04:00
Dan Thompson
98bcf4f1cb 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

[CL 24678894 by Dan Thompson in ue5-main branch]
2023-03-16 16:42:02 -04:00
Dan Thompson
5a737ea6bc Texture tiling fix.
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]
2023-03-07 15:15:48 -05:00
henrik karlsson
ce587eb612 Added markups for headers that can't be compiled standalone.. this is needed for both Header units and IWYU
#preflight 63789b0c170bc34a93a869e5
#rb none

[CL 23552160 by henrik karlsson in ue5-main branch]
2022-12-21 02:46:50 -05:00
Dan Thompson
f3d53d2ba3 Fix for mip generation for child platforms unnecessarily linearizing.
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]
2022-12-06 18:20:21 -05:00
dan thompson
749fc7af7b Fix for crash when creating texture arrays.
#jira UE-169956
#preflight 63850025fa053c489a0593c6
#rb charles.bloom

[CL 23300649 by dan thompson in ue5-main branch]
2022-11-28 19:30:35 -05:00
Dan Thompson
c929b7ca0e Fix for a malformed check() when assembling texture arrays in the editor one-by-one.
#rb trivial
#preflight 636e8b08232e3d12cbb8b4a9

[CL 23101050 by Dan Thompson in ue5-main branch]
2022-11-11 12:55:31 -05:00
Dan Thompson
8b4692d085 Remove "mutable" parts of the build settings. For platforms that need the mip dimensions, this is now piped down via a parameter instead of violating "const".
#rb fabian.giesen
#rb charles.bloom
#preflight 636987d7dc30a4ce96651026

[CL 23021179 by Dan Thompson in ue5-main branch]
2022-11-07 18:29:15 -05:00
Dan Thompson
87ca03f336 Clarifying comment
#rb trivial
#preflight 636438ce5c51adc95fa6077c

[CL 22969054 by Dan Thompson in ue5-main branch]
2022-11-03 18:12:50 -04:00
Zak Middleton
73efd27f6c #ue5 - Truncation fixes for modules:
StatsViewer
StatusBar
TargetDeviceServices
TargetPlatform
Teleporter
TimeManagement
TranslationEditor
ViewportInteraction
Virtualization
WindowsPlatformFeatures
WindowsTargetPlatform

#jira UE-160837, UE-160843
#rb Andrew.Davidson, Dave.Jones2
#preflight 636024751c75ff834a526197

[CL 22873932 by Zak Middleton in ue5-main branch]
2022-10-31 18:33:27 -04:00
Dan Thompson
24456b0b23 Shared Linear Encoding for DDC1 - disabled by default, enable by cvar (r.SharedLinearTextureEncoding 1)
#rb jeff.roberts fabian.giesen devin.doucette
#preflight 6334c333b946208fc1c4856b

[CL 22233333 by Dan Thompson in ue5-main branch]
2022-09-28 18:26:45 -04:00
Dan Thompson
b66139e721 Shared Linear Texture Encoding [DDC2] -- Separates out the platform tiling code to allow for texture builds to reuse the linear texture that gets encodes with windows.
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]
2022-08-23 12:41:58 -04:00
charles bloom
7b9fe78863 TextureFormatOodle call LogVersion to check CPU caps and don't make a TextureFormat if not supported
drops back to NVTT/ISPC legacy texture encoders
fixes textures failing to encode on old CPUs without SSE4

#rb fabian.giesen
#preflight 62bd0c89ed35ee71a7c856c7

[CL 20887958 by charles bloom in ue5-main branch]
2022-06-29 22:43:01 -04:00
charles bloom
60eb0735b4 reduce texture build memory use by freeing source images when no longer needed
#preflight 62b72389ff7f5dd87e2f5573
#rb fabian.giesen,dan.thompson

[CL 20830728 by charles bloom in ue5-main branch]
2022-06-27 10:44:18 -04:00