* Moved dllexport from type to methods/staticvar. This improves compile times, memory and performance in dll builds
#rb
[CL 26081848 by henrik karlsson in ue5-main branch]
I've reviewed all code using async requests and we had multiple places incorrectly handling the stat: some placed failed to decrease the counter, while others would decrease it when they shouldn't. The main cause was the fact that when we create an async request and pass nullptr as the target memory, the request allocates the memory itself and increases the STAT_AsyncFileMemory. However, when we call GetReadResults() on such requests, the responsibility is on the caller to balance the calls and decrease the stat, which is not very obvious and leads to the mentioned bugs. On top of that, when we call GetReadResults() we may not have the knowledge as to whether the returned memory was allocated by the request or not (which may affect whether we should touch the stat at all).
Resolved by adding IAsyncReadRequest::ReleaseMemoryOwnershipImpl member, which may be used by request implementations to do the proper clean up (balance the stat). This way requests take the full responsibility for their changes and users of the requests don't need to know their implementation details.
#preflight none
#rb Patrick.Laflamme
#jira UE-185064
[CL 25664733 by Wojciech Krywult in ue5-main branch]
- When PSO precaching is enabled:
- the binary program cache is continually appended with new PSOs.
- all encountered PSOs are added to the binary cache.
- The binary program cache is mmapped after the cache has grown beyond a cvar specified size.
- rudimentary cache size controls (deletes after going over cvar controlled size threshold on startup).
- any non-precache caches are deleted on startup.
#rb jack.porter
#preflight 6466121df602a4c404daea06
[CL 25531662 by allan bentham in ue5-main branch]
This is a rather "hacky" fix. The old task implementation (TaskGraph API) is on a life support so there's no point of spending too much time for this
#preflight 644be99f1c2846595c45a4f2
#rb danny.couture
[CL 25235003 by Andriy Tylychko in ue5-main branch]
Avoiding duplicate conditions, restructuring loops, and using LIKELY/UNLIKELY allows the compiler to generate shorter and faster code.
#rb Zousar.Shaker
#rnx
[CL 24995086 by devin doucette in ue5-main branch]
This is an 8-byte unfair recursive mutex built on top of ParkingLot.
Provides the same API as FCriticalSection which allows it to be used as a drop-in replacement.
#preflight 6422fde4803cb466e85619b0
#rb Andriy.Tylychko, Phil.Pizlo
[CL 24873014 by devin doucette in ue5-main branch]