starter-cache inclusion tweaks

This commit is contained in:
Eric 2023-09-01 11:53:30 -07:00
parent a1534ea38f
commit 7c3c2eaca9
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
5 changed files with 87 additions and 54 deletions

56
.efrocachemap generated
View File

@ -4064,26 +4064,26 @@
"build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1",
"build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "71d6137c5b76b2b3303843f75b133309",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "4a8365954ce522fbf4b88806556c05c6",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "34f6f72380e8ddd78381720a3318cdfb",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "b0018db87173b93897a4b0784080617f",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "1f64b93ef8c96c1a08c8dd9df0ce59b6",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "9215dd53e512b8b72cec42be17f7ad76",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "156e9fb1070dbeb23b7ef2b23a42696f",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "d577b91ba57cfc3f5853174c086891d0",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "dec2bc68a0e5ee7d3f7ac34173b9c1d9",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "d59d87a16bb17e8a82a4046a5d58bce9",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "79670d43aabde710aebd07abd5281d2f",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "b1d683392bccd43eaad266e89fd074ab",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "c17244b60db5205dcfb17f4b6673c1db",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "9316816cd78ad2ee634b7fb169aee793",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "cd07ee0273ed4698ce36d3abc4aa05cc",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "c8de3a1c97598e3c9bc5c44049d9a867",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "40c86fd1dd657312e326ab80f436e883",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "a51f70b0a5e0d9d569b0ece5bed123a1",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "550c619dd2a26fa1bb77cd7129b0c32a",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "5a336fcd1d396d34607c58ebb9a0c61f",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "95166586256dc94f679d3f15cf570ed8",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "820f8a69f86434ff6dab9cc23e675708",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "70903ec2f476fbc5908cc52522f69e0c",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "442f2bdde3c176d9a4431c9fdcca892e",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "5354821ede7348ba9bb90bee8fe5ccb7",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "ab0cb59c874beb50e554d3d7c552565e",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "dec2c09bd136aa413b9b94729f7d6d2e",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "a5c43eb8befc810d693ec9c9f83fcba4",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "091ee6cb6bb2cd6ff6c28a1a487488df",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "d6a10e3a6bc1a07609598f962439c6c8",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "c3f9f9b30a84a3d93cefdac1efc6bb4c",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "231bd6e18145b06028e4f90fd7de106c",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "7af10f955a2a010332fa67daf9971e3b",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "4586629e8f114c1b5a22444ae26b5917",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "b6bc12d306e0a7c40f0f8d676dff1736",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "518c529a7133d5ea41d730d12ae156c4",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "bc2734437901fc1e2f236a10000dadbf",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "91e559906c51edd86def448b36341f4c",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "ccb3e7da1cfe95ed2038635e65d493c0",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "35adf9afb9a8e2e28ac73e2480328078",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "a3607fd941915ab11503f82acfc392b5",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "b5a129d83796c9e7015ab5e319d2c22f",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "a3607fd941915ab11503f82acfc392b5",
@ -4100,14 +4100,14 @@
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "c5c40967e63471c9c4abd6dfbef892df",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "d34c0a142e7d391a109a33ea3cc77c08",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "c5c40967e63471c9c4abd6dfbef892df",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "5af6712fe9a5ea3e85c6471785026ddb",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "0bcc48dc4d3ba34a1f8e21cf384505e7",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "c9449a8c9d43c3f34f9eceb2db4bab47",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "d2e4d17f9b2e0cc1c0dfef3e91c20a4e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "4d7a8a9a6b6a4e9aebd15570451bbccd",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "5b4b09bb552bf1439987117fc1a229df",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "012e1f7c2a2fe0dedfc881bca725b8d4",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "6f93943644b62161accb42457f76005b",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "f2e326710ed9b4d60b776cc466dcd6ef",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "cf3eda1d6dde5e2940d3c95c189b81c7",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "34c74a370208dcb7c04895faf5663f44",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "a2e89d0e98d234e55eb0cbe3aa3fdeb2",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "07437d8692539b74468b6d5603bc6a84",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "c85405193970b0c2ce78b1ec06016cbf",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "534b291ceec828449a9fabbefe131b43",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "4ede5778fde3aba2392d89226aaad032",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "f8cd3af311ac63147882590123b78318",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "ad347097a38e0d7ede9eb6dec6a80ee9",

View File

@ -1,4 +1,4 @@
### 1.7.28 (build 21298, api 8, 2023-09-01)
### 1.7.28 (build 21299, api 8, 2023-09-01)
- Added some high level functionality for copying and deleting feature-sets to
the `tools/spinoff` tool. For example, to create your own `poo` feature-set,

View File

@ -52,7 +52,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be
# using.
TARGET_BALLISTICA_BUILD = 21298
TARGET_BALLISTICA_BUILD = 21299
TARGET_BALLISTICA_VERSION = '1.7.28'

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 21298;
const int kEngineBuildNumber = 21299;
const char* kEngineVersion = "1.7.28";
const int kEngineApiVersion = 8;

View File

@ -303,15 +303,15 @@ def update_cache(makefile_dirs: list[str]) -> None:
cpus = multiprocessing.cpu_count()
# Build a list of files going into our starter cache, files going
# into our headless starter cache, and all files.
# Build lists of all cached paths as well as the subsets going into
# our starter caches.
fnames_starter_gui: list[str] = []
fnames_starter_server: list[str] = []
fnames_all: list[str] = []
# If a path contains any of these substrings it will be included in
# the server starter cache.
server_starter_paths = {
add_to_server_starter_paths = {
'build/assets/ba_data/fonts',
'build/assets/ba_data/data',
'build/assets/ba_data/python',
@ -319,6 +319,23 @@ def update_cache(makefile_dirs: list[str]) -> None:
'build/assets/ba_data/meshes',
}
# Never add binaries to starter caches since those are specific to
# one platform/architecture; we should always download those
# as-needed.
never_add_to_starter_endings = {
'.a',
'.dll',
'.lib',
'.exe',
'.pdb',
'.so',
'.pyd',
}
# We do include model dirs for server starters but want to filter out
# display meshes there.
never_add_to_starter_endings_server = {'.bob'}
for path in makefile_dirs:
cdp = f'cd {path} && ' if path else ''
@ -348,31 +365,47 @@ def update_cache(makefile_dirs: list[str]) -> None:
f'(absolute paths not allowed): {rawpath}'
)
# Break these into 2 lists, one of which will be included in the
# starter-cache.
for rawpath in rawpaths:
fullpath = _project_centric_path(os.path.join(path, rawpath))
# The main reason for starter caches is to reduce overhead
# for downloading individual tiny files, so let's include
# small files only in starter lists. For larger stuff, a
# request per file shouldn't be too inefficient. Also,
# prebuilt binaries tend to be larger and we don't want to
# include a bunch of binaries for other platforms that we
# won't use.
if os.path.getsize(fullpath) < 200_000:
# Gui starter gets everything.
fnames_starter_gui.append(fullpath)
# For server starter, limit to a few key dirs.
if any(p in fullpath for p in server_starter_paths):
# We include the meshes dir but we only want
# collision meshes; not display ones.
if not fullpath.endswith('.bob'):
fnames_starter_server.append(fullpath)
# Always add to our full list.
fnames_all.append(fullpath)
# Now selectively add to starter cache lists.
# Always keep certain file types out of starter caches.
if any(
fullpath.endswith(ending)
for ending in never_add_to_starter_endings
):
continue
# Keep big files out of starter caches. The main benefits of
# the cache is that we can reduce the overhead for
# downloading individual tiny files by grabbing them all at
# once, but that advantage diminishes as the files get
# bigger. And not all platforms will use all files, so it
# generally more efficient to grab bigger ones as needed.
if os.path.getsize(fullpath) > 300_000:
continue
# Gui starter gets everything that made it this far.
fnames_starter_gui.append(fullpath)
# For server starter, limit to a few key dirs.
if not any(p in fullpath for p in add_to_server_starter_paths):
continue
# Also exclude some endings from server starters.
if any(
fullpath.endswith(ending)
for ending in never_add_to_starter_endings_server
):
continue
# Ok this one qualifies for the server starter too.
fnames_starter_server.append(fullpath)
# Ok, we've got a big list of filenames we need to cache in the
# cloud. First, however, let's do a big hash of everything and if
# everything is exactly the same as last time we can skip this step.