跳到正文

Smooth Loading Screens

Reduces startup freezes and keeps the Create World loading screen responsive!

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

[IMPROVED] Minecraft’s Loading Screen FREEZING issue.

When you launch Minecraft or load a large modpack, the loading screen can stop moving long enough to make you think the game has crashed. Minecraft may still be working internally, but the animation and loading bar cannot update.

Smooth Loading reduces several causes of these pauses and gives the loading screen more opportunities to draw while the work continues.

Current version: 0.1.6-alpha.1

THE ISSUE:

In simple terms, loading work can block the same thread that draws the loading screen. The game continues processing that work, but the animation remains frozen because the thread has no opportunity to draw another frame.

THE SOLUTION:

This mod tackles the problem in 3 ways:

1) I reduced repeated font work. Instead of repeatedly scanning font providers and retrieving the same glyph information, the mod preserves font priority and appearance while using more efficient selection and temporary caching. Version 0.1.6 also reuses identical ordered character lists across font variants instead of rebuilding them. This preserves the ordering used for obfuscated text too.

2) Minecraft can finish an entire batch of queued loading tasks before drawing again. This mod adds an 8 ms budget, checked between completed tasks, allowing another frame before continuing the remaining queue. One really expensive task can still exceed that budget, but giving the animation a chance to move is better than nothing xD.

3) Datapack, registry and recipe preparation can run for long stretches without regular drawing. This mod adds drawing checkpoints between completed pieces of work during world preparation and supported loading stages. Required preparation still completes normally, with game and graphics work kept on their required threads.

Individual mod callbacks, graphics driver work and JVM pauses can still cause stalls. This mod reduces freezing, it cannot guarantee uninterrupted animation.

Performance Improvements

Measured in Tensura World of Monsters, my own modpack, on Minecraft 1.21.1 / NeoForge 21.1.250.

Earlier responsiveness measurements:

Measurement Before After Improvement
Longest startup freeze 11.8 seconds 3.5 seconds ~70% shorter
Longest Create World freeze 9.1 seconds 0.45 seconds ~95% shorter

These are earlier observed display-gap measurements, separate from the 0.1.6 comparison below. They are not guarantees for every launch or modpack.

New in 0.1.6 — compared with 0.1.5:

Measurement 0.1.5 0.1.6 Result
Font application time 12.980 seconds 9.871 seconds 23.95% less time
Java bytes allocated during font application 2.942 GB 1.954 GB 33.59% fewer bytes
Total startup observation 80.507 seconds 78.718 seconds Overlapping ranges no reliable overall speedup measured

These are medians from six separate launches, three per version, using the same 182 JAR Tensura snapshot and test settings.

A separate 185 JAR combination with ModernFix, EMI, QuickIndex and Modern UI’s text engine disabled measured 20.18% less font-application time and 33.59% fewer allocated bytes. It did not establish a total startup improvement.

Allocated bytes measure cumulative Java object allocation during that phase. They do not measure peak RAM usage or gameplay FPS.

Glyph Provider Lookup Reduction

0.1.6 font application capture recorded:

Measurement Recorded value
Glyph requests during font selection 107,027,626
Actual provider lookups 705,667
Requests served from the cache 106,321,959
Share served from the cache ~99.34%

These are counters from one capture, not a before/after comparison against unmodified Minecraft.

The existing glyph cache already provided these lookup savings in 0.1.5. The additional 0.1.6 improvement comes from avoiding repeated character list construction while preserving the same font selection results.

Compatibility and Resolved Issues

The following versions were retested on NeoForge 1.21.1:

Mod / combination Result
Quick Pack 1.5.1 Compatible. Smooth Loading yields font selection to Quick Pack, avoiding the previous conflict. The new union optimization is bypassed.
Modern UI 3.13.0.1 Compatible with its text engine enabled or disabled in the tested combinations. Its enabled engine replaces vanilla font loading, so the new optimization is bypassed.
ModernFix 5.27.24 / 5.27.26 Supported lazy font providers remain compatible with the temporary font cache.
EMI 1.1.24 + EMI QuickIndex 1.0.0 Recipe, search, lookup and rendered recipe screen checks passed. No new EMI indexing speedup is claimed.
TMRV 0.9.0 + EMI, including the FancyMenu 3.9.14 / Konkrete 1.9.9 / Melody 1.0.10 stack Tested combinations passed world entry, recipe UI and thread ownership checks.

Compatibility does not guarantee a performance gain in every workload. The small themed test reused no unions, allocated approximately 1.147 MB more during font application and showed no overall startup gain.

When using TMRV, remove the actual JEI mod and check that your JEI addons accept TMRV’s advertised API version. Smooth Loading does not bypass another mod’s dependency requirements.

Supported Versions

Minecraft: 1.20.1, 1.21.1, 1.21.11, 26.1.2, 26.2 and 26.3.

Loaders: Fabric, NeoForge and Forge 18 separate runtime JARs.

Side: Client only. Install one JAR matching your Minecraft version and loader.

All 18 profiles passed their build, algorithm and declared client checks. The measured Tensura performance figures above apply specifically to NeoForge 1.21.1, the other profiles have not received equivalent modpack performance measurements.

License

Pixelated Industries Mods License.

常见问题

Smooth Loading Screens 支持哪些 Minecraft 版本?

Smooth Loading Screens 支持 Minecraft Java 版 1.20.1–26.3,共 6 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Smooth Loading Screens 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Hecrius 的其他作品

查看全部 →