mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-26 22:10:18 +00:00
Restored saved dimensions off-thread
- Saved Iris dimensions are prepared in parallel during world load (server-about-to-start on NeoForge and Forge, server-starting on Fabric), before the server watchdog runs - Server start only creates the restored levels, builds their engines in parallel, and publishes them, so its wait no longer grows one world at a time - Each restored dimension opens its generation history once instead of twice and resolves its active pack once instead of three times - An epoch snapshot whose content matches its validated source pack reuses that validation instead of running the full pack validator for every world - Level creation reads the configured pack and structure biome keys from data warmed during preparation - Immutable generation packs feed the prepared hydrology cache identity from the data's memoized fingerprint instead of hashing the pack twice per engine build - Restore logging reports each dimension's preparation and engine time and how long the server thread waited
This commit is contained in:
13 files changed
+1118
-223
No files matched your search
+6
-3
@@ -30,9 +30,12 @@ record PreparedHydrologyCacheIdentity(String fingerprint) {
|
||||
if (context.isBlank()) {
|
||||
return null;
|
||||
}
|
||||
String content = GenerationPackFingerprint.compute(
|
||||
target.getData().getDataFolder().toPath(), GenerationPackFingerprint.CURRENT_VERSION);
|
||||
String dependencies = target.getData().hasGenerationRegistryContract() ? "closed"
|
||||
boolean immutable = target.getData().hasGenerationRegistryContract();
|
||||
String content = immutable
|
||||
? target.getData().generationPackFingerprint()
|
||||
: GenerationPackFingerprint.compute(
|
||||
target.getData().getDataFolder().toPath(), GenerationPackFingerprint.CURRENT_VERSION);
|
||||
String dependencies = immutable ? "closed"
|
||||
: dependencyFingerprint(IrisPlatforms.get().packsFolderNoCreate());
|
||||
if (dependencies.isBlank()) {
|
||||
return null;
|
||||
|
||||
Reference in new issue
Block a user