Commit Graph

299 Commits

Author SHA1 Message Date
embeddedt
80a4585efd
Do not deserialize model JSONs in parallel
Some Forge model loaders attempt to read more models while
deserializing, which causes issues
2023-02-09 22:01:32 -05:00
embeddedt
08fd01c09f More improvements to async model loading, but still crashes sometimes 2023-02-09 14:33:06 -05:00
embeddedt
eb99ce47d8 Measure vanilla bootstrap time 2023-02-09 10:44:35 -05:00
embeddedt
611a8e18cb Add patch for Netty packet leak
Fixes https://github.com/embeddedt/ModernFix/issues/15
Related:
https://github.com/EnigmaticaModpacks/Enigmatica6/issues/4469
https://github.com/MinecraftForge/MinecraftForge/pull/8181
https://github.com/MinecraftForge/MinecraftForge/pull/8042
2023-02-09 10:03:37 -05:00
embeddedt
6ebc3bbe03 Implement parallel baking for vanilla models 2023-02-08 15:20:07 -05:00
embeddedt
0111a8e2ec Improve reliability of async blockstate rebuild logic 2023-02-08 14:02:35 -05:00
embeddedt
ae796f2386 Revert unfinished change 2023-02-08 13:58:07 -05:00
embeddedt
3d7422496e Fix occasional CME when rebuilding blockstate cache 2023-02-08 09:56:17 -05:00
embeddedt
0ffb3cc973
Further optimizations to model loading 2023-02-06 10:01:15 -05:00
embeddedt
30ae895fa5
Add option to rebuild blockstate caches on a background thread 2023-02-04 12:56:32 -05:00
embeddedt
e9a6a3d194
More tweaks to model loading 2023-02-04 12:43:38 -05:00
embeddedt
aead8ef90f
Disable resource location deduplication for now due to CPU time 2023-02-01 21:19:33 -05:00
embeddedt
fcc6abe3b7
Cache model dependencies and materials 2023-01-29 22:24:12 -05:00
embeddedt
72def15ac6
More tweaks to executor 2023-01-29 22:00:00 -05:00
embeddedt
a71a036ae8
Move vanilla model baking earlier in the loading process 2023-01-29 21:37:18 -05:00
embeddedt
9f112f2fbc
Fix splash screen freezing when workers are busy 2023-01-29 20:32:57 -05:00
embeddedt
c861870306
Remove log messages from resource pack cache
This feature is pretty stable
2023-01-29 20:22:53 -05:00
embeddedt
f24f63d6d9
Reduce performance impact when building ingredient filter 2023-01-29 20:18:05 -05:00
embeddedt
d1aa03a0c5
Tweak JEI injection for compatibility with 7.8 2023-01-29 18:19:21 -05:00
embeddedt
536f6b9a50
Handle unnormalized resource paths
Fixes #14
2023-01-28 21:01:45 -05:00
embeddedt
48b4f976df
Add mod scanning optimization (requires Blacksmith) 2023-01-28 20:51:24 -05:00
embeddedt
8dc915037c
Improve blockstate cache rebuild logic, remove vanilla search trees if JEI is installed 2023-01-28 12:49:38 -05:00
embeddedt
fa9a3bb890
Avoid recreating arrays when computing block state cache 2023-01-28 11:19:39 -05:00
embeddedt
5c914deeb7
More experimental features 2023-01-28 10:56:50 -05:00
embeddedt
5c4e77b211
Enable class search cache 2023-01-28 10:13:39 -05:00
embeddedt
ccc3959328
Experimental multipart parallelizations 2023-01-28 10:06:13 -05:00
embeddedt
8e99cac6a7
Code cleanup 2023-01-28 08:29:48 -05:00
embeddedt
497393bf59
Adjust ArgsClassGenerator start index based on class cache 2023-01-28 08:27:38 -05:00
embeddedt
ba30b37552
Disable biome container compression when Chocolate Fix is installed 2023-01-22 21:10:02 -05:00
embeddedt
f2de12329e
Add model predicate flattening 2023-01-22 20:23:41 -05:00
embeddedt
6b28cb5ebc
Port biome palette and chunk section optimizations from Hydrogen 2023-01-22 20:11:03 -05:00
embeddedt
ad5fcf44e5
Add theoretical performance optimization for Scanner
Useless for now until I find a way of running transformers
before mods load
2023-01-22 18:56:43 -05:00
embeddedt
8cdc425d7d
Ensure the main thread does not spin when no tasks are available 2023-01-22 18:07:48 -05:00
embeddedt
a8df933e19
Add API to allow stopping already stopped AsyncStopwatch 2023-01-22 16:32:50 -05:00
embeddedt
23b4652864
Improve class transformer cache 2023-01-22 14:23:06 -05:00
embeddedt
95d7410722
Add FIXME note to MixinTransformerHasher 2023-01-22 12:47:37 -05:00
embeddedt
09ffb73a70
Don't clear blockstate cache field
This will break one of FerriteCore's optimizations
2023-01-21 21:15:24 -05:00
embeddedt
a800f6d704
Add ResourceLocation deduplication from Hydrogen 2023-01-21 21:15:13 -05:00
embeddedt
277ea384e7
Support injecting new transformer outside of dev 2023-01-21 20:31:34 -05:00
embeddedt
ac99791d3a
Deduplicate empty byte arrays 2023-01-21 12:39:27 -05:00
embeddedt
41eef0b6ab
New class transformer cache
Hashes individual mixins/coremods and therefore needs no special invalidation logic
2023-01-21 12:33:17 -05:00
embeddedt
bee6c6f272 Add config options to enable/disable the transformer cache and class search cache 2023-01-19 10:30:35 -05:00
embeddedt
abc7f77d44 Fix mixin warnings 2023-01-19 10:18:02 -05:00
embeddedt
cc953a2e88 Remove unused import 2023-01-19 10:05:26 -05:00
embeddedt
cf2c6a2b7e Disable location cache again (manual timing showed it's not effective) 2023-01-19 10:03:31 -05:00
embeddedt
802a0587c7
Enable class location cache 2023-01-19 08:57:52 -05:00
embeddedt
d2f5c4b15a
Implement class location cache 2023-01-18 20:55:35 -05:00
embeddedt
6dbf4b5a12 WIP 2023-01-18 09:45:11 -05:00
embeddedt
b806438bf9 Switch to not using service 2023-01-18 09:21:22 -05:00
embeddedt
c01ea4fcc4
WIP: class search improvements 2023-01-18 09:04:50 -05:00
embeddedt
c8a5d62e34
Initial implementation of transformer caching 2023-01-15 14:52:37 -05:00
embeddedt
b0a2da715e
Disable async JEI by default when Modern UI is installed 2023-01-14 19:51:47 -05:00
embeddedt
41ed759938
1.4.3 - correctly handle JEI plugins that throw errors when sending runtime
Fixes #9
2023-01-14 16:59:32 -05:00
embeddedt
9e3ae9d8c0
Make BakeReason more resilient 2023-01-12 21:32:19 -05:00
embeddedt
f4dfd428df
Use custom interruption flag for JEI reload thread
Fixes #5
2023-01-08 19:02:09 -05:00
embeddedt
df50f1e3a5
Turn off preloading of block classes
When enabled, the parallel DeferredRegister system should yield
the same result anyway.
2023-01-07 21:57:10 -05:00
embeddedt
572cbaf9bd
Make BlockColors thread-safe
Workaround for issues like https://github.com/vadis365/Mob-Grinding-Utils/issues/240,
as too many mods do this
2023-01-07 19:03:47 -05:00
embeddedt
24990ba089
Enable blockstate cache rebuild as it should be completely safe 2023-01-07 13:43:39 -05:00
embeddedt
d6a2760824
Disable risky parallel optimizations by default 2023-01-07 13:08:29 -05:00
embeddedt
933f495d64
Only prefill block suppliers 2023-01-07 13:07:56 -05:00
embeddedt
0062bc9bae
Make dispenser behavior registry thread-safe 2023-01-07 13:07:06 -05:00
embeddedt
9d0677a3d7
Make OrderedParallelModDispatcher more reliable 2023-01-07 13:06:53 -05:00
embeddedt
dd91031382
Cache all DeferredRegister suppliers 2023-01-07 12:49:07 -05:00
embeddedt
0fb6c71734
Refactor blockstate caching 2023-01-07 12:37:44 -05:00
embeddedt
9456eac7df
WIP: more parallelization 2023-01-07 11:11:43 -05:00
embeddedt
2525a64313
Move mod dispatching logic into its own class 2023-01-06 21:57:44 -05:00
embeddedt
5c0d23b2f0
Parallelize construction of DeferredRegister registry objects 2023-01-06 21:47:06 -05:00
embeddedt
c6323fd62e
Scan for all Block classes and preload them on worker threads
This helps move towards multithreading most VoxelShape computations
2023-01-06 16:50:52 -05:00
embeddedt
9ebeec6fc2
Fix crash on dedicated server 2023-01-06 14:31:15 -05:00
embeddedt
87b644834f
Adjust thread priorities 2023-01-06 14:31:09 -05:00
embeddedt
b0dfd4a4ef
Make reload thread name more useful for debugging 2023-01-06 11:01:54 -05:00
embeddedt
3695473283
Make JEILoadingInterruptedException an error so it propagates further 2023-01-06 10:59:48 -05:00
embeddedt
75695cf759
Patch OBJLoader to support parallel loading
Fixes #4
2023-01-06 10:49:45 -05:00
embeddedt
f43d54eafd
Implement facility to process specific JEI plugins on the main thread 2023-01-06 10:42:48 -05:00
embeddedt
41da489c85
Add async JEI loading 2023-01-05 20:50:30 -05:00
embeddedt
21d559ab94
Add chunk saving fix 2023-01-05 18:19:39 -05:00
embeddedt
ac27dbca4e
Fix mcmeta files not being included in hasResource() calls 2023-01-05 11:06:33 -05:00
embeddedt
588dc1a86e
Add config 2023-01-04 20:26:29 -05:00
embeddedt
dc18e782c4
Don't cache invalid resource locations at all
Fixes #2
2023-01-04 17:23:34 -05:00
embeddedt
773800830f
Optimize VanillaPack.hasResource 2023-01-04 15:28:58 -05:00
embeddedt
c0869fb1b2
Fix crash outside dev 2023-01-04 15:28:51 -05:00
embeddedt
89ebab3ab8
Trim ModelManager maps 2023-01-04 14:24:54 -05:00
embeddedt
50fb19156c
Time game startup as well 2023-01-04 14:24:33 -05:00
embeddedt
d13fb0850d
Use up to 255 worker threads (matches 1.18) 2023-01-04 09:53:57 -05:00
embeddedt
bf4496341b
Optimize ModFileResourcePack.hasResource 2023-01-03 21:50:48 -05:00
embeddedt
80e273bf12
Fix crash when running outside dev 2023-01-03 21:50:39 -05:00
embeddedt
878d682eee
Reduce log output when preloading JSONs 2023-01-03 21:11:56 -05:00
embeddedt
fe1e39ad10
Remove parallel baking :(
Turns out it's not safe after all.
2023-01-03 20:55:25 -05:00
embeddedt
3d80d5a90e
Mojmap 2023-01-03 16:14:42 -05:00
embeddedt
0a8fbf9114
Validate model JSON paths before preloading them
Fixes #1
2023-01-03 13:52:07 -05:00
embeddedt
26915c6af4
Skip recomputing block state cache when unnecessary
Based on https://github.com/MinecraftForge/MinecraftForge/pull/7496
2023-01-02 21:56:42 -05:00
embeddedt
dff8c4cc35
Parallel texture collection 2023-01-02 21:05:30 -05:00
embeddedt
9180c79854
Parallelize parts of model loading/baking 2023-01-02 13:56:51 -05:00
embeddedt
f2e557253e
Remove biome temperature caching
Based on 4553ccb0a0
2023-01-02 10:25:39 -05:00
embeddedt
e50859f10d
Fix occasional crash due to unsafe concurrency with RenderTypes 2023-01-01 20:30:03 -05:00
embeddedt
9a4952aa42
Optimize VanillaPack.resourceExists further 2023-01-01 20:30:03 -05:00
embeddedt
57773db489
Fix crash when running outside of dev 2023-01-01 20:30:03 -05:00
embeddedt
055721f494
Skip first datapack reload
Implementation from https://github.com/MinecraftForge/MinecraftForge/pull/8163

Fixes https://github.com/MinecraftForge/MinecraftForge/issues/8125
2023-01-01 20:29:54 -05:00
embeddedt
bb184a0772
Initial commit 2022-12-31 18:35:31 -05:00