Commit Graph

24 Commits

Author SHA1 Message Date
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
Dan Thompson
0c889685e3 Updating the mip packing and tiling interfaces to not require image bits. This is required to determine memory layouts for textures prior to launching texture builds.
#rb fabian.geisen
#preflight 62a90ea9943e7bb256c39717

[CL 20659876 by Dan Thompson in ue5-main branch]
2022-06-14 19:00:42 -04:00
charles bloom
600710d0b7 quieter log spew when running TBW
but do log in editor and cook

#rb none
#preflight none

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 19961272 via CL 19961945 via CL 19962983
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19971604 by charles bloom in ue5-main branch]
2022-04-28 18:50:35 -04:00
charles bloom
83a33c6d95 TextureFormatManager better init safety
do Invalidate in your constructor so you are valid after LoadModule
in case someone tries to Load TextureFormatManager and use it other than TargetPlatform
mutex protect thread access
fixes TBW broken by previous CL on TextureFormatManager

#preflight 6269c22f4510fc7faaf8c8aa
#rb zousar.shaker

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 19949335 via CL 19949395 via CL 19949397
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19952589 by charles bloom in ue5-main branch]
2022-04-28 02:05:06 -04:00
charles bloom
be238dee17 fix failures on texture import of rare cases
fix RHI upload of textures that are multiple of 4 in top mip but not in lower mips
dont pad CompressedImage sizes, store true size
clean up Texture size limits and VT conditions
better default settings for texture import
clean up initialization order of TextureFormatManagerModule

#preflight 6250814a11261bc7b23d8f4b
#rb fabian.giesen,julien.stjean

[CL 19693287 by charles bloom in ue5-main branch]
2022-04-08 16:06:54 -04:00
charles bloom
65aa836d8e Remove NVTT imports from TextureCompressor Module
should only be pulled from TextureFormatDXT

#preflight 62420bed9f404234142e2609
#rb none

[CL 19532444 by charles bloom in ue5-main branch]
2022-03-28 16:09:27 -04:00
charles bloom
1ba296578e fix mip map gen on non power of 2 textures
also allow MaxTextureSize on non-pow2
no longer force TMGS_NoMipMaps on non-pow2

#preflight 6241f2badc6183e3f5d32332
#rb fabian.giesen

[CL 19530862 by charles bloom in ue5-main branch]
2022-03-28 14:32:21 -04:00
martins mozeiko
73a3d6fd78 Avoid texture conversion to RGBA32F linear color space when unnecessary.
Adds faster code paths for common CopyImage conversions.

#rb charles.bloom
#preflight none

[CL 19235453 by martins mozeiko in ue5-main branch]
2022-03-02 20:13:48 -05:00
charles bloom
5966ccc2de remove TextureCompressor UsesTaskGraph query
not used and should not be used
clean up some todo comments in TextureFormatOodle

#preflight 61ba4ca5055f3013459c0a02
#rb none

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 18471288 in //UE5/Release-5.0/... via CL 18471293
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18471295 by charles bloom in ue5-release-engine-test branch]
2021-12-15 16:45:31 -05:00
charles bloom
64fc29ad3a versioned Oodle Texture encode
Texture uasset stores OodleTextureSdkVersion to use
legacy assets load with None
new textures automatically set version to latest
allows updating Oodle Texture Sdk without creating patches
new prefs:
[AlternateTextureCompression]
TextureCompressionFormatWithVersion
OodleTextureSdkVersionToUseIfNone

#rb dan.thompson,devin.doucette

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 18456277 in //UE5/Release-5.0/... via CL 18456284
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v898-18417669)

[CL 18456295 by charles bloom in ue5-release-engine-test branch]
2021-12-14 13:04:03 -05:00
danny couture
7c705ace03 Cache texture formats instead of recreating FName from strings every call to GetDerivedTextureDataKey
#rb Matt.Peters

#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 18308363 in //UE5/Release-5.0/... via CL 18308397
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18308458 by danny couture in ue5-release-engine-test branch]
2021-11-29 08:22:57 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
devin doucette
1d45cefecb Texture: Remove the UTexture parameter from ITextureFormat::GetDerivedDataKeyString
This is necessary to support building textures independently of the UTexture, which is required by the new derived data build interface.

#rb Zousar.Shaker
#rnx
#preflight 60cbbb906092ba000158179a

#ROBOMERGE-SOURCE: CL 16714489 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16714496 by devin doucette in ue5-release-engine-test branch]
2021-06-17 18:59:40 -04:00
Zousar Shaker
35cb1325a8 -Avoid having dependency on Engine by TextureFormatOodle by avoiding use of UTexture and getting
-Add mechanism for ITextureFormat to have a generic and private "FormatSettings" block that can be global, but also exported with a texture build action and applied when a texture build is executed remotely.  Also ensure that ChildTextureFormat is able to split and store/read the format settings for Child & Base format as separate sub-items.
-Allow the PS5TextureBuildWorker to compile in Oodle if the plugin is present and enabled.

#rb charles.bloom

[CL 16406838 by Zousar Shaker in ue5-main branch]
2021-05-20 14:19:29 -04:00
Zousar Shaker
479de11b0f Fix non-unity compile issue in TextureFormatManager
#rb none

[CL 16354268 by Zousar Shaker in ue5-main branch]
2021-05-17 12:31:39 -04:00
Zousar Shaker
ed9e510483 Preferred alternative fix (instead of CL16332153) for UE-115783 and UE-115714 that uses inlining instead of relying on the caller to selectively enable/disable linking in their build files. This leaves the TextureFormat module with zero exports. Only interfaces and two inline functions. Confirmed compile & link on: win64 editor, win64 server shipping, linux server shipping, ShooterGame linux editor
#rb
#preflight 609eecbbf6c6e3000143e139

[CL 16337324 by Zousar Shaker in ue5-main branch]
2021-05-14 18:38:25 -04:00
Zousar Shaker
1c7a70e76b Add the ability to export texture build actions for use when testing the standalone texture build workers.
#rb Matt.Peters

[CL 16317907 by Zousar Shaker in ue5-main branch]
2021-05-13 16:15:45 -04:00
Zousar Shaker
6521df7bb5 Attempt #2 (with issues fixed from last time): Extract texture format indexing and interfaces from the TargetPlatformManager and instead put it into a new type: TextureFormatManager instead. TargetPlatformManager retains the same API for querying texture format information, it just forwards to the TextureFormatManager instead. This is to facilitate the use of TextureCompressor from standalone executables that shouldn't depend on TargetPlatformManager.
#rb ben.ingram

Undo //UE5/Main/Engine/Source/... changelist 16172520

[CL 16185594 by Zousar Shaker in ue5-main branch]
2021-05-03 14:05:29 -04:00
Zousar Shaker
64b4edb93a Undo //UE5/Main/Engine/Source/... changelist 16165786
[CL 16172520 by Zousar Shaker in ue5-main branch]
2021-04-30 16:07:56 -04:00
Zousar Shaker
1818e30ac5 Allow GetTextureFormatManager to be called for the first time from any thread.
Fix NonUnity issue in TextureFormatManager.

#rb ben.ingram
#rb yuriy.odonnell

[CL 16171026 by Zousar Shaker in ue5-main branch]
2021-04-30 14:16:45 -04:00
Zousar Shaker
5120294eb3 Extract texture format indexing and interfaces from the TargetPlatformManager and instead put it into a new type: TextureFormatManager instead. TargetPlatformManager retains the same API for querying texture format information, it just forwards to the TextureFormatManager instead. This is to facilitate the use of TextureCompressor from standalone executables that shouldn't depend on TargetPlatformManager.
#rb ben.ingram

[CL 16165786 by Zousar Shaker in ue5-main branch]
2021-04-30 00:28:32 -04:00