Commit Graph

159 Commits

Author SHA1 Message Date
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
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
josh adams
82ea6a767a [Backout] - CL26223564
[FYI] keaton.stewart
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26226852 by josh adams in ue5-main branch]
2023-06-24 17:52:48 -04:00
keaton stewart
1fd1a77412 [Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
#fyi Josh.Adams
#jira FORT-626566 (edited)
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26223564 by keaton stewart in ue5-main branch]
2023-06-23 20:29:27 -04:00
Josh Adams
e25e1b3daf - Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26221679 by Josh Adams in ue5-main branch]
2023-06-23 19:12:47 -04:00
anton dunchev
d4d9104fe9 Unix MemoryTrace implementation
#rb [at]Brandon.Schaefer, [at]Johan.Berg
#tests DS

[CL 25879889 by anton dunchev in ue5-main branch]
2023-06-08 15:46:12 -04:00
brandon schaefer
918a67f6d9 Support enabling AutoRTFM instrumentation on a Module level in UBT
#rb Neil.Henning, Joe.Kirchoff
#preflight 646655bd743f7c995bc7a7ff

[CL 25532181 by brandon schaefer in ue5-main branch]
2023-05-18 15:44:35 -04:00
bryan sefcik
e80ead56c1 Removed bad module includes in Core.
#preflight 6462bafa2965f6ea8eb5b2d7

[CL 25482808 by bryan sefcik in ue5-main branch]
2023-05-15 19:33:39 -04:00
bryan sefcik
e60c6da33b Windows ARM64 linker fixes.
#preflight 63f54cea26233b957f9870f2

[CL 24353033 by bryan sefcik in ue5-main branch]
2023-02-21 18:31:58 -05:00
joe kirchoff
a28516caa6 Remove unnecessary public include in Core
#rnx
#jira UE-177808

[CL 24332133 by joe kirchoff in ue5-main branch]
2023-02-20 20:57:23 -05:00
christopher waters
f0b834540e Cleaning up a number of direct module includes.
[CL 24253328 by christopher waters in ue5-main branch]
2023-02-16 04:13:28 -05:00
dmytro vovk
d3a6a6c1f7 Added MemAdvice static C lib to Android
#rb Allan.Bentham

[CL 24119001 by dmytro vovk in ue5-main branch]
2023-02-10 10:15:21 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
 - UnrealArch is a single architecture, expandable enum-like struct
 - There is no more concept of "no/default architecture", there is always a valid active architecture when building
 - Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
 - UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
 - UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
 - TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
 - Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)

#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471

[CL 23829977 by josh adams in ue5-main branch]
2023-01-24 09:30:28 -05:00
henrik karlsson
ea8ea49aa2 [UBT]
* Changed lots of modules to use IWYUSupport instead of bEnforceIWYU (which is being deprecated)

#preflight 63bc8486c45a2c81e0b14fe8
#rb none

[CL 23641460 by henrik karlsson in ue5-main branch]
2023-01-11 01:32:59 -05:00
bryan sefcik
13665b41ad Turned off VTune and ISPC when compiling windows arm64
#preflight 63b607132960b73220d02835

[CL 23583219 by bryan sefcik in ue5-main branch]
2023-01-04 18:23:39 -05:00
bryan sefcik
d608130583 Tweaked unity sizes.
#jira
[FYI] joe.kirchoff
#preflight 63757482b6636838283838da

[CL 23172508 by bryan sefcik in ue5-main branch]
2022-11-17 00:29:06 -05:00
joe kirchoff
fdaa9a76a4 Backout changes to Core.build.cs as it is causing issues with the Mimallo.c compile
#rnx
#rb trivial

[CL 22977814 by joe kirchoff in ue5-main branch]
2022-11-04 00:02:11 -04:00
joe kirchoff
3ed2a97d33 Remove full path to public Core headers
#rnx
#rb bryan.sefcik
#preflight 63644885c53af2f47f8c4e82

[CL 22977768 by joe kirchoff in ue5-main branch]
2022-11-04 00:01:26 -04:00
bryan sefcik
07894f4a07 Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631a717cec45fbf3d74d4ba7

[CL 21916033 by bryan sefcik in ue5-main branch]
2022-09-09 00:53:22 -04:00
jessica agee
403f029bd7 Set UnsafeTypeCastWarningLevel to Error for a few widely-used modules
#rb none
#preflight 630d013af92416fb926b3c7a
#preflight 630d0938e54ec9d5815ebb45

[CL 21696478 by jessica agee in ue5-main branch]
2022-08-30 02:22:04 -04:00
yiliang siew
4731cf5692 Link against the correct Superluminal Performance API when building targets that have bDebugBuildsActuallyUseDebugCRT set to true in Debug builds.
#rb Robert.Manuszewski
#preflight 62cf555f3d312b549711d002

#ROBOMERGE-AUTHOR: yiliang.siew
#ROBOMERGE-SOURCE: CL 21088436 via CL 21088780 via CL 21088801 via CL 21088818
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21096173 by yiliang siew in ue5-main branch]
2022-07-14 15:18:10 -04:00
Peter Engstrom
4aae8d3ed0 Iris experimental replication system.
Initial submit, compiled out by default.

#rb Peter.Engstrom,Mattias.Hornlund,Brian.Bekich,Ryan.Gerleve,John.Barrett
#jira UE-158381
#preflight /62cd6fc7ad490b52da0515a3

[CL 21068370 by Peter Engstrom in ue5-main branch]
2022-07-13 03:11:55 -04:00
Joe Kirchoff
f4ac91cbf0 UnrealBuildTool: Update Target.WindowsPlatform.StaticAnalyzer -> Target.bStaticAnalyzer so it can be shared with the Clang toolchains, marking the old properties and enums as obsolete
#rnx
#rb Ben.Marsh
#preflight 62c5db38b47aed4cf108e4ee

[CL 20971113 by Joe Kirchoff in ue5-main branch]
2022-07-06 15:06:26 -04:00