FImage is now the standard preferred type for a bag of pixels
FImageView can point at pixels without owning an allocation
ERawImageFormat (FImage) converts to ETextureSourceFormat
FImageUtils provides generic load/save and get/set from FImage
major cleanup in the ImageWrappers
new preferred API is through ImageWrapperModule Compress/Decompress
SetRaw/GetRaw functions cleaned up to not have undefined behavior on unexpected formats
ImageWrapper output added for HDR,BMP,TGA
RGBA32F format added and supported throughout import/export
EditorFactories import/export made more generic, most image types handled the same way using FImage now
Deprecate old TSF RGBA order pixel formats
Fix many crashes or bad handling of unusual pixel formats
Pixel access functions should be used instead of switches on pixel type
#preflight 6230ade7e65a7e65d68a187c
#rb julien.stjean,martins.mozeiko,dan.thompson,fabian.giesen
[CL 19397199 by charles bloom in ue5-main branch]
Where Revival tries to revert any Cancellation as if it never happened. If the canceled Task was already executed by the Scheduler the revival will fail
(the Task will not be relaunched if revival fails). And where Expediting tries to fast track a task if the result is needed immediately on the current Context.
#preflight 6230cb60f41c515c3704cf08
#RB Francis.Hurteau
[CL 19388819 by Arne Schober in ue5-main branch]
This fixes FramePro malloc profiler using an invalid FrameProProfilerContext TLS object when profiling memory deallocation of another ThreadSingleton.
#tests Squads games on WSL, manually starting/stopping FramePro profiling.
#rb brandon.schaefer
#preflight 622ea396e652f92f31152268
#ROBOMERGE-AUTHOR: ilya.loshchinin
#ROBOMERGE-SOURCE: CL 19370380 via CL 19370384 via CL 19370497 via CL 19370636 via CL 19370637
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19374482 by ilya loshchinin in ue5-main branch]
#preflight 622b9e000a614dcb0c02ce51
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 19359429 via CL 19360744 via CL 19363804 via CL 19368121 via CL 19368191
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19368995 by rex hill in ue5-main branch]
- Changed the SupportedPlatforms dialog to show all DDPI platforms, not just the ones that are compiled in currently
#rb chris.waters
#preflight 622bc87546679d56c32545cd
[CL 19361979 by Josh Adams in ue5-main branch]
- Only the first 20 bytes of the RawHash field in the header will be consumed.
- In a subsequent change, the last 12 bytes of the RawHash field will be set to zero for new compressed buffers.
- Leveraged composite buffers to avoid performing an extra copy of compressed blocks.
- Updated FBlockEncoder::Compress to always use ParallelFor.
- Added ParallelForWithPreWorkWithTaskContext.
#preflight 622ba3869b7ce6ea5d44b7ab
#rb Zousar.Shaker
#rnx
[CL 19360767 by Devin Doucette in ue5-main branch]
Convert landscape mobile cook version to system guid system
#jira
#rnx
#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 19346370 via CL 19352300 via CL 19352991 via CL 19355735
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19357735 by marc audy in ue5-main branch]
#rb none
#preflight 6228bfd231133a23da83376d
#ushell-cherrypick of 19339219 by steve.robb
#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 19320363 via CL 19345602 via CL 19350976 via CL 19351027
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19351729 by marc audy in ue5-main branch]
Improved UX For Device Tree and CVar Conditions
- Clean up Niagara Device Tree
- new bIsVisibleForAsssets value in device profiles to have them indicate which device profiles should be visible in other assets.
- Improved tooltips and colouring on device tree to better show what is enabled/disabled and why.
- Added tooltips for CVar conditions to text entry and suggestion boxes showing the CVar help text.
PlatformSet Redirect feature =
- Can redirect usage of device profiles to other device profiles or CVar conditions.
- Allows fixup of content referncing legacy device profiles.
- Adding CVar fx.Niagara.LegacyDeviceProfiles to facilitate some legacy DP fixup.
Platforms now specifiy a min & max Niagara Quality Level they support which reduces need for trawling ini files and allows fragments to set quality level.
CVar Conditions now have more control over what occurs when the condition is passed or failed. Previously they could only disable the set when the condition is failed which is now the default.
Misc Fixes
- Preview DP is cleared before restoring CVar states so CVar callbacks have the correct preview DP value.
- Data Driven CVars are now updated correctly when default is modified in project settings.
- Console Manager now has a callback when CVars are unregistered.
- Utility function for calling a functor on all platform sets in a Niagara system.
- Tweaked callbacks for CVar changes so updates are defered and also limited to only refresh things that references changed CVars.
#rb Stu.Mckenna, Josh.Adams
#preflight 6228bc3a1f1ec97d4e89a3c4
#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 19321301 via CL 19321315 via CL 19325452 via CL 19327333 via CL 19327341
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19348289 by josh adams in ue5-main branch]
There was contention on the lock when 60+ worker threads execute the ParallelFor.
#preflight 6228caf331133a23da85eda2
#rb Danny.Couture
#rnx
[CL 19320744 by Devin Doucette in ue5-main branch]
- This restore proper prioritization support that was lost with the new task backend while keeping a sane number of threads
- This helps to prevent latency sensitive tasks from going to efficient cores for Alder Lake
- This fixes performance problems caused by high prio task getting picked up by background threads and being preempted under high-load, causing FPS hiccups.
- SetThreadPriority takes ~20us on average on Windows System and is only paid for background work
- Longer SetThreadPriority can be expected when lowering the priority of a task under heavy load, which might cause the caller to be preempted right away, this is expected.
- Can be A/B tested from command-line with -TaskGraphUseDynamicPrioritization=1/0
#rb Andriy.Tylychko, Arne.Schober, Stefan.Boberg
#preflight 622786a7e83598518f3745a1
[CL 19314282 by danny couture in ue5-main branch]