This achieves two things:
- Verse programs that first grow their heap will do half the syscalls on Windows to allocate fresh memory (before: reserve syscall then commit syscall, now: single reserve and commit syscall).
- The verse_heap logic now does a better job using libpas conventions, which simplifies the code some.
#rb saam.barati
[CL 26871490 by phil pizlo in ue5-main branch]
Dynamic libraries of OpenSubdiv are not generated for Windows and
were unused on Linux and Mac, so the build scripts now disable
generating them on all platforms.
The toolchain on Linux was also updated to the new current version.
#jira UE-190064
#rb none
[CL 26830682 by matt johnson in ue5-main branch]
This change includes just the source code pulled directly from Pixar's
OpenSubdiv project on GitHub. A subsequent change will update the
build scripts, add the build products, and update the module rules for
using this new version of OpenSubdiv in the engine.
#jira UE-190064
#rb none
[CL 26828782 by matt johnson in ue5-main branch]
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]
[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]
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]
This code is checked out from https://p4-swarm.epicgames.net/changes/25806081. Hopefully it will have no conflicts when it gets picked up by robomerge. Code should be identical to what is on Main. These changes are required to bump our target sdk to 33 for Android. See https://p4-swarm.epicgames.net/changes/26756410
#jira UE-181208
#android
[REVIEW] [at]Chris.Babcock
#rb Chris.Babcock
[CL 26779979 by ben temple in ue5-main branch]
- Also incorporates some minor upstream header updates
#rb self
[FYI] nazar.rudenko, aidan.possemiers, matthew.cotton, eden.harris
[CL 26759212 by nick pace in ue5-main branch]