* Made code compatible with modules/header units. This includes following things:
* Removed static in front of global functions/variables (static indicates it is hidden outside of module/header unit which is not what many places want...)
* Moved dllexport from type to methods in order to get dllexport of static constexpr fields. This is supposed to work according to microsoft but since it is a good change I don't mind doing it anyway)
* static constexpr -> static constexpr inline for member variables and methods (this makes them available outside module/headerunit)
* Added HEADER_UNIT_IGNORE markup to includes that are circular
* Added HEADER_UNIT_SKIP to files that can't compile by themselves
#preflight 63e2aeba3c44c83044bfcc75
#rb steve.robb
[CL 24066986 by henrik karlsson in ue5-main branch]
We currently have no use case for a runtime-queried cache line size and the function only existed on a subset of our supported platforms
#rb steve.robb
#jira none
#preflight 63c6c73f0225f00e1488c828
[CL 23739143 by Johan Torp in ue5-main branch]
Switch Unix from runtime to compile time cache line constant to avoid loading a value for every PrefetchBlock and allow the compiler to unroll the loop.
#rb josh.adams,arciel.rekman,dmytro.vovk,steve.robb
#preflight 63bed66a577437afe6c44c91
[CL 23660061 by johan torp in ue5-main branch]
#preflight 63b859fc68068a8bd62e9d32
#rb jeff.roberts
#rb fabian.giesen
#rb halfdan.ingvarsson
Tried to run automation tests but it's basically a red board right now. I ran two, one with these changes and one without, and they seem to be basically the same errors, however there are so many and I can't really cross compare easily.
base automation tests: 63b8a5dcaf3ebedd990b7dfe
preflight automation tests: 63b87801221aab21e08d5973
#preflight 63bc93e9577437afe6fbe45a
[CL 23621334 by Dan Thompson in ue5-main branch]
#rb Andriy.Tylychko
#jira none
#preflight 636b8d93a550a2a759f46dfb
- We were checking if the SRW was locked or not in the destructor, but we did this by trying to acquire the lock, meaning that it would always be in the locked state when destroyed.
- Technically this is causing no issues but it does cause ApplicationVerifier to throw errors, which makes it hard to use the tool to find actual problems.
- Added a private method ::IsLocked which will do the acquire but also unacquire the lock before returning meaning we are in the correct state by the time that the destructor ends.
[CL 23246576 by paul chipchase in ue5-main branch]
* Fixed so all headers that are supposed to be included independently can compile (there are headers that must be included through other headers)
* Added HEADER_UNIT_SKIP to headers that must be included through others
* Added HEADER_UNIT_UNSUPPORTED to headers that are not supported by platform but is part of the include list anyway (files in Clang folder and pthread files).
* Added HEADER_UNIT_UNSUPPORTED to headers that have bad dependencies and include files from modules they don't depend on. (KeyChainUtilities.h and PackageWriter.h)
#preflight 637281309e3bea8079feb733
#rb devin.doucette
[CL 23127795 by henrik karlsson in ue5-main branch]
changed `FWindowsPlatformMisc::IsLocalPrintThreadSafe` to return true if attached in the debugger this allows log calls to immediately print to the debug window
a follow up change is necessary to allow for attaching after the process has started
#preflight 63727f813248425305e8a6a1
[CL 23121763 by joe pribele in ue5-main branch]
Cooker: In MPCook Collect garbage based on the Operating System's MemoryPressure event, so that Standby memory does not cause spurious garbage collection.
In all cook modes, tweak the output during garbage collection to have less duplicate information.
In all cook modes, add a cooldown for GC when garbage collection is not impactful.
#rn Minor, Core
#rb Zousar.Shaker, Danny.Couture
#preflight 636d69761c14fe4505163289
[CL 23088442 by Matt Peters in ue5-main branch]
- Log out more DXGI Adapter information when enumerating adapters in D3D12RHI.
- Log out more SM6 relevant information when enumerating adapters in D3D12RHI.
- Log out driver versions when enumerating adapters in D3D12RHI. Had to silence all the log output from FPlatformMisc::GetGPUDriverInfo to make this usable.
- Adding more logging when D3D12 reports it's not supported.
- Adding more logging to WindowsDynamicRHI so it's easier to track what a system did and didn't support.
- Adding -ForceDisableSM6 command line flag to force D3D12RHI to think it doesn't support ERHIFeatureLevel::SM6.
- Adding -ForceZeroAdapters command line flag to simulate when D3D12RHI can't find any valid adapters.
#rb mihnea.balta
#preflight 6362a1c9522c8f7ab34253ed
[CL 22937800 by christopher waters in ue5-main branch]
Define MI_USE_EXTERNAL_ALLOCATORS and override mimalloc's call to VirtualAlloc/VirtualFree to record the amount committed/decommitted to LLM.
#rb Danny.Couture
#rn LLM, Minor
#preflight 6362cb579160784fc327dbc3
[CL 22926014 by Matt Peters in ue5-main branch]
*Make FPlatformMemory::GetStats cache memory stats per frame to prevent multiple costly platform calls per frame ( by default, has option to request non-cached values ).
*Update some calls to FPlatformMemory::GetStats to specifically request non-cached values.
[REVIEW] [at]evgenii.babinets [at]andrew.ladenberger
#preflight 634a04c0907f4749392d75d0
[CL 22545788 by evgenii babinets in ue5-main branch]