Coder Social home page Coder Social logo

seaborgium's Introduction

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.

Installation

Manual Installation

In order to install Seaborgium, it is preferred you download the mod from our Modrinth page.

Then, you just need to place the appropriate version into your mods folder. Seaborgium provides a unified jar, which means it contains both the Fabric and Forge versions of the mod. You do not need to download a loader specific version.

Custom Builds

TODO: Write custom builds section, discussing how to compile 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.

Incompatibilities

Seaborgium has no reported incompatibilities with other mods as of now. It targets a niche function that is not modified by other mods. However, any mod that changes the rendering API from OpenGL to another one such as Vulkan will likely cause issues with Seaborgium. Such mods are not recommended.

Also, any mod that dynamically recompiles shaders and changes the uniform locations will invalidate Seaborgium’s cache. This is a rare scenario, but it could happen. Seaborgium does not currently have a way to handle such a scenario.

seaborgium's People

Contributors

undefinedbhvr avatar

Forkers

r00tb33rman

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.