Seaborgium
A slight rendering optimization mod for Minecraft, increasing the performance of the vanilla HUD
Compatibility
Minecraft: Java Edition
Platforms
Supported environments
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Links
Creators
Details
DEPRECATION NOTICE:
This mod will not receive updates to later versions. Sodium has implemented a similar optimization to Seaborgium's fix into their mods. I also do lack the time to maintain this mod. The code is licensed under the ISC license, and you are free to make any modifications you wish to use.
I am henceforth archiving the mod on github, and re-establishing it as public for on modrinth for archival purposes.
1.19.4 Notice: Iris made a breaking change, making this making this mod incompatible.
If any developer has a reason to use this mod on 1.19.4, to make it compatible all you need to do is (aside from updating dependencies) is replace net.coderbot.iris.shaderpack.DimensionId
with net.coderbot.iris.shaderpack.materialmap.NamespacedId
in MixinPipelineManager
What is Seaborgium?
Seaborgium is a free and open source optimization mod for Minecraft. It improves the rendering performance of the game by implementing optimizations that are overlooked by other mods.
Seaborgium provides a unified
jar, which means it contains both the Fabric-like and Forge versions of the mod.
Optimizations
Seaborgium implements a simple cache that stores the locations of uniform variables for each shader program.
When GLStateManager invokes glGetUniformLocation
for the first time, Seaborgium checks if it has a cached location for the requested uniform.
If it does, it returns the cached location without invoking glGetUniformLocation
.
If it does not, it invokes glGetUniformLocation
and stores the result in the cache for future use.
This optimization reduces the number of OpenGL calls and avoids unnecessary overhead.
Invoking glGetUniformLocation
is known to be quite slow, and it is not uncommon for drivers to consume noticeable CPU time to process this function.
By caching the result of this function, Seaborgium is able to avoid wasting CPU cycles waiting for a function to return data we should already have on hand.
What sort of performance gains should I expect?
The performance gains can vary significantly by scenario. The performance numbers discussed are based off my personal machine, which has an AMD Ryzen 5 5600x
, 32GB DDR4 @ 3200Mhz
, and an Nvidia GTX 980ti
. All tests also include common optimization mods Lithium and Sodium.
Because of how Minecraft renders hearts to the screen, having a significant number of them quickly becomes expensive. With absorption 255, this mod able to increase the frame rate from a painful 53
average to fairly respectable 163
average.
In a regular gameplay scenario, the results were still noticeable but less pronounced. Enabling between a 30
and 50
FPS increase over what it would be without.
Compatibility
Seaborgium is compatible with all of your expected mods, Sodium
/Rubidium
, Canary
/Lithium
, Starlight
, and more!
Outside of mods that change the backend graphics API (such as Vulkan Mod
) there are no currently known incompatibilities. If you discover any, please report them on the issues page!