Repository navigation
Closed
Description
FYI, I encountered this crash on world entry with the latest Sodium betas: mc26.3-0.9.3-beta.2-fabric (also beta.3). Reverting to beta.1 stops the crash. It stems from CaffeineMC/sodium#3952 -
- public float getTexU(int idx) {
+ public float sodium$getTexU(int idx) {among many, many other methods, including the two used by MoreCulling's mixin. The below patch appears to fix the issue in MoreCulling crashing upon movement in-game (along with a bump to sodium_version); I'm new to Java/Minecraft, however, and I trust your judgment more than my own.
diff --git a/fabric/src/main/java/ca/fxco/moreculling/mixin/compat/MorecullingFabricBlockModelFeatureRenderer_sodiumMixin.java b/fabric/src/main/java/ca/fxco/moreculling/mixin/compat/MorecullingFabricBlockModelFeatureRenderer_sodiumMixin.java
index 5c53b09..a115128 100644
--- a/fabric/src/main/java/ca/fxco/moreculling/mixin/compat/MorecullingFabricBlockModelFeatureRenderer_sodiumMixin.java
+++ b/fabric/src/main/java/ca/fxco/moreculling/mixin/compat/MorecullingFabricBlockModelFeatureRenderer_sodiumMixin.java
@@ -49,7 +49,7 @@ public class MorecullingFabricBlockModelFeatureRenderer_sodiumMixin {
)
)
private void render(Mesh instance, QuadEmitter emitter, Operation<Void> original) {
- original.call(instance, ((ExtendedMutableQuadViewImpl) this.emitter).getWrapper());
+ original.call(instance, ((ExtendedMutableQuadViewImpl) this.emitter).sodium$getWrapper());
}
private void bufferQuad(MutableQuadViewImpl quad) {
@@ -60,17 +60,17 @@ public class MorecullingFabricBlockModelFeatureRenderer_sodiumMixin {
}
if (quad.emissive()) {
- ((ExtendedMutableQuadViewImpl) quad).getWrapper().lightmap(LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT);
+ ((ExtendedMutableQuadViewImpl) quad).sodium$getWrapper().lightmap(LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT, LightCoordsUtil.FULL_BRIGHT);
} else {
- ((ExtendedMutableQuadViewImpl) quad).getWrapper().minLightmap(submit.lightCoords());
+ ((ExtendedMutableQuadViewImpl) quad).sodium$getWrapper().minLightmap(submit.lightCoords());
}
int[] tintLayers = submit.tintLayers();
int baseTintColor = submit.tintColor();
- int tintIndex = quad.getTintIndex();
+ int tintIndex = quad.sodium$getTintIndex();
boolean useTintLayer = tintIndex != -1 && tintIndex < tintLayers.length;
- ((ExtendedMutableQuadViewImpl) quad).getWrapper().multiplyColor(useTintLayer ? ARGB.multiply(baseTintColor, tintLayers[tintIndex]) : baseTintColor);
- ((ExtendedMutableQuadViewImpl) quad).getWrapper().buffer(submit.overlayCoords(), submit.pose(), buffer);
+ ((ExtendedMutableQuadViewImpl) quad).sodium$getWrapper().multiplyColor(useTintLayer ? ARGB.multiply(baseTintColor, tintLayers[tintIndex]) : baseTintColor);
+ ((ExtendedMutableQuadViewImpl) quad).sodium$getWrapper().buffer(submit.overlayCoords(), submit.pose(), buffer);
}
}I can provide the full crash log if you need it, but here's the hallmark segment of this:
java.lang.NoSuchMethodError: 'net.caffeinemc.mods.sodium.client.render.frapi.wrapper.MutableQuadViewWrapper net.caffeinemc.mods.sodium.client.render.frapi.wrapper.ExtendedMutableQuadViewImpl.getWrapper()'
at knot//ca.fxco.moreculling.api.renderers.MorecullingFabricBlockModelFeatureRenderer.wrapOperation$dna000$moreculling$render(MorecullingFabricBlockModelFeatureRenderer.java:552)
at knot//ca.fxco.moreculling.api.renderers.MorecullingFabricBlockModelFeatureRenderer.buildGroup(MorecullingFabricBlockModelFeatureRenderer.java:61)
at knot//net.minecraft.client.renderer.feature.RenderTypeFeatureRenderer.prepareGroup(RenderTypeFeatureRenderer.java:36)
at knot//net.minecraft.client.renderer.feature.FeatureRenderDispatcher$PreparedGroup.prepare(FeatureRenderDispatcher.java:350)
at knot//net.minecraft.client.renderer.feature.FeatureRenderDispatcher.prepareFrameWithContext(FeatureRenderDispatcher.java:92)
at knot//net.minecraft.client.renderer.feature.FeatureRenderDispatcher.prepareFrame(FeatureRenderDispatcher.java:61)
at knot//net.minecraft.client.renderer.LevelRenderer.render(LevelRenderer.java:218)
at knot//net.minecraft.client.renderer.GameRenderer.mixinextras$bridge$render$76(GameRenderer.java)
at knot//net.minecraft.client.renderer.GameRenderer.wrapOperation$zel000$betterclouds$iris$renderLevel(GameRenderer.java:6461)
at knot//net.minecraft.client.renderer.GameRenderer.wrapOperation$zel000$betterclouds$iris$renderLevel$mixinextras$bridge$72(GameRenderer.java)
at knot//net.minecraft.client.renderer.GameRenderer.renderLevel(GameRenderer.java:693)
at knot//net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:496)
at knot//net.minecraft.client.Minecraft.renderFrame$mixinextras$wrapped$326(Minecraft.java:1376)
at knot//net.minecraft.client.Minecraft.mixinextras$bridge$renderFrame$mixinextras$wrapped$326$327(Minecraft.java)
at knot//net.minecraft.client.Minecraft.wrapMethod$bco000$dynamic_fps_common$renderFrame(Minecraft.java:6717)
at knot//net.minecraft.client.Minecraft.renderFrame(Minecraft.java)
at knot//net.minecraft.client.Minecraft.runTick(Minecraft.java:1274)
at knot//net.minecraft.client.Minecraft.run(Minecraft.java:967)
at java.base/java.lang.Thread.run(Unknown Source)
Metadata
Metadata
Assignees
Labels
No labels
Activity
[-]Sodium 0.9.3-beta2+ renames quad.getWrapper/getTintIndex to sodium$getWrapper/getTintIndex[/-][+]Sodium 0.9.3-beta.2+ renames quad.getWrapper/getTintIndex to sodium$getWrapper/getTintIndex[/+]