CaffeineMC / sodium

A Minecraft mod designed to improve frame rates and reduce micro-stutter
Other
4.82k stars 809 forks source link

Create a task force for ensuring mod compatibility with Sodium #2329

Open jellysquid3 opened 9 months ago

jellysquid3 commented 9 months ago

We are likely to make organizational changes and improvements with Sodium 0.6 which could break compatibility with certain mods that depend on our internal code.

As part of our continued effort to maintain compatibility with addon mods-- without applying pressure upon other addon developers-- we would like to create a task force for identifying mod compatibility issues ahead of time.

The work of this task force will involve a few different jobs:

  1. Identify the current collection of mods which depend on Sodium internals. (We should have a complete list of these mods before the alpha release of Sodium 0.6.)
  2. Validate the functioning of each addon mod with the future release of Sodium.
  3. Examine the reason for the breakage, and if not possible to fix upstream, submit pull requests downstream early for any mod which does not function correctly.
  4. For pull requests which are declined or otherwise not merged in time, create mixins for these fixes, and incorporate them into a secondary mod for Sodium which provides compatibility with known-incompatible mods.
SiverDX commented 9 months ago

just gonna throw this in here (you can delete if wrong place)

mixin

Valkyrien Skies (Forge/Fabric) https://github.com/ValkyrienSkies/Valkyrien-Skies-2/tree/1.18.x/main/common/src/main/java/org/valkyrienskies/mod/mixin/mod_compat/sodium

Shimmer https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium https://github.com/Low-Drag-MC/Shimmer/tree/1.20/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium

NoCubes https://github.com/Cadiboo/NoCubes/tree/526fa53c3fe5097a1f271f84a45da8b6ed4dcbe0/src/main/java/io/github/cadiboo/nocubes/mixin/client/sodium https://github.com/Cadiboo/NoCubes/blob/master/src/main/java/io/github/cadiboo/nocubes/client/render/SodiumRenderer.java

Bobby https://github.com/Johni0702/bobby/tree/master/src/main/java/de/johni0702/minecraft/bobby/mixin/sodium

Bobby Reforged https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/mixin/sodium https://github.com/anthxnymc/BobbyReforged/tree/1.19.2/src/main/java/de/johni0702/minecraft/bobby/sodium

Cull Less Leaves https://github.com/isXander/CullLessLeaves/tree/1.19/src/main/java/dev/isxander/culllessleaves/mixins/sodiumcompat

Majrusz Library https://github.com/Majrusz/MajruszLibrary/blob/1.20.X/common/src/main/java/com/majruszlibrary/mixin/MixinItemColors.java (unsure about this one)

Seamless https://github.com/TeamDiopside/Seamless/blob/1.20.4/fabric/src/main/java/nl/teamdiopside/seamless/fabric/mixin/SodiumGameOptionPagesMixin.java https://github.com/TeamDiopside/Seamless/blob/1.20.4/forge/src/main/java/nl/teamdiopside/seamless/forge/mixin/SodiumGameOptionPagesMixin.java

Snow! Real Magic! ⛄ (Forge) https://github.com/Snownee/SnowRealMagic/tree/1.20-forge/src/main/java/snownee/snow/mixin/sodium

Physics Mod https://github.com/haubna/PhysicsMod/ (unsure about this one)

incompatible

Chunk Animator https://github.com/Harleyoc1/ChunkAnimator

Fabric version of Create (?) See https://www.curseforge.com/minecraft/mc-mods/prominent-create

There are some incompatibilities regarding certain lava-vision features (there is no mixin into Sodium but that is the problem of these features not working to my understanding):

IThundxr commented 9 months ago

Steam 'n' Rails has a mixin that'll probably break: https://github.com/Layers-of-Railways/Railway/blob/1.20/dev/common/src/main/java/com/railwayteam/railways/mixin/compat/sodium/MixinBlockOcclusionCache.java

MCRcortex commented 9 months ago

Most of nvidium will probably break, however im not sure how much of it can realistically be extracted to an API (similar to iris)

AluTheCrow commented 9 months ago

With your support of custom color resolvers and custom fluid colors, Vanadium and Bismuth should be able to mixin a bit easier now. I'll update with findings in the off chance we can't.

TropheusJ commented 9 months ago

Nothing here needs action on Sodium's end, just for documentation

IThundxr commented 9 months ago

Nothing here needs action on Sodium's end, just for documentation

  • Create will break again because of Flywheel, but Pepper and Jozu will take care of that at some point.
  • Create and Portal Cubed have a soft dependency on SpriteContentsExtended that will fail safely if not found.

I can take care of flywheel, should be a quick pr

IThundxr commented 9 months ago

https://github.com/AlphaMode/Star/blob/1.20.1/src/main/java/me/alphamode/star/client/renderers/SodiumUpsideDownFluidRenderer.java

needs a api so that they can use sodiums fluid rendering system

jellysquid3 commented 9 months ago

I will open an issue with checklist items for the aforementioned mods, depending on what solutions they need exactly. For some things (see #2330) it just needs us to architect our code slightly differently.