Commit Graph

12773 Commits

Author SHA1 Message Date
steven barnett
ba608ec265 Add density to FPhysicsMaterial and use it for buoyancy
[CL 26926802 by steven barnett in ue5-main branch]
2023-08-08 15:22:55 -04:00
zack neyland
505da40573 CSVProfiler: Return -1 when hot reloading to prevent a crash.
#jira UE-190804
#rb Tyler Staples

[CL 26925876 by zack neyland in ue5-main branch]
2023-08-08 15:03:02 -04:00
robert millar
0210d4d51c Increase size of symbols field and warn on truncation
#rb johan.berg

[CL 26924737 by robert millar in ue5-main branch]
2023-08-08 14:31:04 -04:00
david harvey
de00c54105 Remove platform extension WindowsHWrapperPrivate.h because there's already PreWindowsApiPrivate/MinWindowsPrivate & PostWindowsApiPrivate.h & the structure is always the same
#jira UE-152863
#rnx
#rb trivial

[CL 26912392 by david harvey in ue5-main branch]
2023-08-08 06:19:59 -04:00
david harvey
2076316bd9 Replace all usage of MinWindows.h with WindowsHWrapper for consistency.
- only a handful of places so there's a clear precedent

#jira UE-152863
#rb trivial
#rnx

[CL 26912255 by david harvey in ue5-main branch]
2023-08-08 06:04:34 -04:00
david harvey
bdb4199eeb Remove unnecessary WindowsHWrapper.h & MinWindows.h include - both files will be automatically included by AllowWindowsPlatformTypes.h
#jira UE-152863
#rnx
#rb Josh.Adams

[CL 26912096 by david harvey in ue5-main branch]
2023-08-08 05:50:53 -04:00
yoan stamant
459d08093c FBox constructors update:
- default construct now creates a box marked as invalid
- added ENABLE_UNINITIALIZED_BOX_DIAGNOSTIC to force Min and Max values to NaN and to perform disagnostic checks at runtime.
- updated some constructors to be constexpr
- added FBox(ENoInit) constructor that creates a box without any initialization
- added DiagnosticCheck to detect cases where a default initialized is used with values for Min and Max still set to NaN (ENABLE_UNINITIALIZED_BOX_DIAGNOSTIC = 1) or to detect introduce NaN during computation (ENABLE_NAN_DIAGNOSTIC = 1)

Goals with this change since the implementation is currently not consistent regarding the IsValid flag:
1- Initialize IsValid flag to 0 in default constructor so 'operator+=' can be reliable when used on a default initialized FBox. DiagnosticCheck can then be used when box is marked as valid.
2- Since it is already possible for user to construct a FBox, set Min and Max (without marking it as Valid) then pass it around or perform other operations calls to DiagnosticCheck are added when a box is constructed (mainly to catch cases when a NaN initialized box is used to create another box: ExpandBy, ShiftBy, MoveTo, etc.). Otherwhise DiagnosticCheck is used in methods where Min or Max are used without consideration of the IsValid flag (GetCenter, GetExtent, GetSize, etc.)
#rb maxime.mercier
#rb matt.peters

[CL 26904115 by yoan stamant in ue5-main branch]
2023-08-07 19:03:01 -04:00
josh adams
97536070dc - Delayed the kickoff of async loading of other platform configs, because ProjectDir can get reset on main thread while the async threads are using it for loading other platform configs
- Allow for projects to have ConfigRedirects.ini files - it was not oringally allowed but a licensee found that it can be needed for User saved ini files that can't be updated, so the redirects is useful for a licensee to specify
- Fixed a copy/paste error in a log about ConfigRedirects
#jira UE-188860,UE-165743

[CL 26902954 by josh adams in ue5-main branch]
2023-08-07 18:40:55 -04:00
james singer
5440098709 Fix double-double quoted paths in UnixPlatformProcess
#jira UE-190523, UE-70641
#rb zack.neyland
#rnx

[CL 26889208 by james singer in ue5-main branch]
2023-08-07 13:19:39 -04:00
andrew scheidecker
786b137e22 Rename TGuardedSignedInt to TGuardedInt and add support for unsigned integers.
Factor some of the arithmetic operators out of TGuardedInt into AddAndCheckForOverflow et al functions in FPlatformMath so they can use the __builtin_*_overflow functions on clang that compile to much more efficient code than the portable C code does in most cases.
#rb Fabian.Giesen, Johan.Torp

[CL 26880341 by andrew scheidecker in ue5-main branch]
2023-08-07 08:13:41 -04:00
ionut matasaru
423dbfeeaf [Insights] MemoryInsights: Fixed missing ProgramSize allocations for Unix platform.
#jira UE-191384
#rb none

[CL 26879438 by ionut matasaru in ue5-main branch]
2023-08-07 05:56:52 -04:00
adam kinge
e47f47567b Only set device type for iOS when running in a simulator
#jira UE-168571

[CL 26861545 by adam kinge in ue5-main branch]
2023-08-04 16:51:34 -04:00
adam kinge
de6bb9f9b6 When running in the iOS simulator, set the correct device type.
#jira UE-168571
#rb trivial

[CL 26858454 by adam kinge in ue5-main branch]
2023-08-04 15:49:27 -04:00
adam kinge
43d42d6d2b Required Metal changes to support iOS Simulator.
- add a new shader platform (SP_METAL_SIM) to support iOS Simulator specific compilation requirements
- update iOS sim #define WITH_SIMULATOR to WITH_IOS_SIMULATOR

#jira UE-168571
#rb carl.lloyd

[CL 26850475 by adam kinge in ue5-main branch]
2023-08-04 12:28:20 -04:00
andriy tylychko
81c43767ec A minimal support for task cancellation:
* it's user's decision and responsibility to manage cancellation token lifetime, to check cancellation token, return early, to do any required cleanup, or to do nothing at all
* no way to cancel a task to skip its execution completely
* waiting for a canceled task is blocking until its prerequisites are completed and the task is executed and completed, basically same as for not canceled tasks except a canceled one can quit execution early
* canceling a task doesn't affect its subsequents (unless they use the same cancellation token instance)

#rb danny.couture, justin.marcus, per.larsson

[CL 26844767 by andriy tylychko in ue5-main branch]
2023-08-04 09:54:33 -04:00
dan engelbrecht
b7ecdcbf0b Add a global FCbObjectId SessionObjectId usable to coordinate session id's to zenserver.
Change GUID SessionId in FApp to base it on the SessionObjectId to make it easier to correlate session ids in zenserver

#rb stefan.boberg zousar.shaker

[CL 26841373 by dan engelbrecht in ue5-main branch]
2023-08-04 04:15:04 -04:00
ionut matasaru
1a996169e5 [Insights] CpuProfilerTrace:
- Enabled cpu scope tracing of object names (blueprints, functions) by default when app is not running as a commandlet (still requires "cpu" trace channel and -statnamedevents to be enabled). Enabling AssetLoadTime trace channel will enable tracing of object names also in commandlets (ex. cooking).
  - Improved performance when tracing "statnamedevents" cpu scopes (by using a new optimized code path that uses an FName stat id together with a TCHAR* descriptive name).

#rb Matt.Peters

[CL 26815377 by ionut matasaru in ue5-main branch]
2023-08-03 12:36:42 -04:00
phil pizlo
2684dff663 Fix WinGDK build by ensuring that Core only depends on libpas on Win64
#rb none

[CL 26812882 by phil pizlo in ue5-main branch]
2023-08-03 11:43:43 -04:00
phil pizlo
0b56d66706 Move libpas out of restricted and make it available as a malloc on Windows.
Testing libpas's perf as a malloc already revealed some useful data about how the allocator performs on Windows (like that reserving and committing memory in separate syscalls is surprisingly expensive). Even if we don't use libpas as a UE malloc, running it in that mode is likely to reveal opportunities for improvement in those parts of libpas that the Verse GC uses.

The biggest change to libpas is introducing the global physical page cache, which is a heap of memory that starts out committed but gets tracked by the large sharing pool - so it will get decommitted after 300ms of nonuse. This means that if you're growing the heap, we allocate committed memory (single syscall to reserve and commit), but we still have a path to decommitting alignment slop. This made a 5-10% difference in VerseTestVMCmd's running time.

Resubmitting after making Core only depend on libpas on Windows (since for now, I only expose libpas as a malloc on Windows).

#rb andriy.tylychko
#rb andrew.scheidecker
#rb danny.couture

[CL 26811655 by phil pizlo in ue5-main branch]
2023-08-03 11:09:40 -04:00
shawn mcgrath
8d361f2fcf Experimental Vector VM improvements: faster execution speed, faster optimization speed, uses less runtime memory, added debugging features
[CL 26804446 by shawn mcgrath in ue5-main branch]
2023-08-03 07:16:11 -04:00
phil pizlo
b0e979bf58 [Backout] - CL26794980
[FYI] phil.pizlo
Original CL Desc
-----------------------------------------------------------------
Move libpas out of restricted and make it available as a malloc on Windows.

Testing libpas's perf as a malloc already revealed some useful data about how the allocator performs on Windows (like that reserving and committing memory in separate syscalls is surprisingly expensive). Even if we don't use libpas as a UE malloc, running it in that mode is likely to reveal opportunities for improvement in those parts of libpas that the Verse GC uses.

The biggest change to libpas is introducing the global physical page cache, which is a heap of memory that starts out committed but gets tracked by the large sharing pool - so it will get decommitted after 300ms of nonuse. This means that if you're growing the heap, we allocate committed memory (single syscall to reserve and commit), but we still have a path to decommitting alignment slop. This made a 5-10% difference in VerseTestVMCmd's running time.

#rb andriy.tylychko
#rb andrew.scheidecker
#rb danny.couture

[CL 26795519 by phil pizlo in ue5-main branch]
2023-08-02 20:39:57 -04:00
phil pizlo
49b3585fa3 Move libpas out of restricted and make it available as a malloc on Windows.
Testing libpas's perf as a malloc already revealed some useful data about how the allocator performs on Windows (like that reserving and committing memory in separate syscalls is surprisingly expensive). Even if we don't use libpas as a UE malloc, running it in that mode is likely to reveal opportunities for improvement in those parts of libpas that the Verse GC uses.

The biggest change to libpas is introducing the global physical page cache, which is a heap of memory that starts out committed but gets tracked by the large sharing pool - so it will get decommitted after 300ms of nonuse. This means that if you're growing the heap, we allocate committed memory (single syscall to reserve and commit), but we still have a path to decommitting alignment slop. This made a 5-10% difference in VerseTestVMCmd's running time.

#rb andriy.tylychko
#rb andrew.scheidecker
#rb danny.couture

[CL 26795044 by phil pizlo in ue5-main branch]
2023-08-02 20:27:51 -04:00
pj kack
12f58cd0fb FWindowsPlatformProcess::TerminateProc fixes.
Prevent infinite recursion by keeping a set of visited process ids (UE-186400).
Don't kill the whole tree when KillTree is false (fallout from 19196914).
Close previously leaking snapshot and child process handles.

#jira UE-186400
#rb martin.ridgers

[CL 26769240 by pj kack in ue5-main branch]
2023-08-02 09:07:43 -04:00
joe kirchoff
7d71748550 Enable profile guided optimization on Intel ICX compiler 2023.1
[FYI] Jeff.Rous

[CL 26754669 by joe kirchoff in ue5-main branch]
2023-08-01 16:56:39 -04:00
david harvey
847fd70841 Add a new experimental bundle source that uses the platform chunk installer, via some optional new functions in the chunk installer interface.
#jira UE-146398
#rnx
#rb Justin.Marcus

[CL 26733411 by david harvey in ue5-main branch]
2023-08-01 04:46:51 -04:00