Sodium

Sodium

35M Downloads

Chunk Rendering Mixin Not Disabling Properly

Polyhymn opened this issue ยท 1 comments

commented

Version information

sodium-fabric-mc1.17.1-0.3.0+build.5

Reproduction Steps

Mods and Version
Screen Shot 2021-08-20 at 11 30 20 am
Screen Shot 2021-08-20 at 11 30 35 am

  1. Set mixin.feature.chunk_rendering to false in sodium-mixins.properties
  2. Attempt to open a world in game
  3. Upon joining game, minecraft crashes

Crash Report file

---- Minecraft Crash Report ----
// I feel sad now :(

Time: 20/8/21, 11:15 am
Description: Unexpected error

java.lang.ClassCastException: class net.minecraft.class_761 cannot be cast to class me.jellysquid.mods.sodium.client.world.WorldRendererExtended (net.minecraft.class_761 and me.jellysquid.mods.sodium.client.world.WorldRendererExtended are in unnamed module of loader net.fabricmc.loader.launch.knot.KnotClassLoader @5d9b7a8a)
at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.getInstance(SodiumWorldRenderer.java:64)
at net.minecraft.class_897.handler$zzh000$preShouldRender(class_897.java:517)
at net.minecraft.class_897.method_3933(class_897.java:60)
at net.minecraft.class_898.method_3950(class_898.java:121)
at net.minecraft.class_761.method_22710(class_761.java:1199)
at net.minecraft.class_757.method_3188(class_757.java:1026)
at net.minecraft.class_757.method_3192(class_757.java:810)
at net.minecraft.class_310.method_1523(class_310.java:1112)
at net.minecraft.class_310.method_1514(class_310.java:728)
at net.minecraft.client.main.Main.main(Main.java:217)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)

A detailed walkthrough of the error, its code path and all known details is as follows:

-- Head --
Thread: Render thread
Stacktrace:
at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.getInstance(SodiumWorldRenderer.java:64)
at net.minecraft.class_897.handler$zzh000$preShouldRender(class_897.java:517)
at net.minecraft.class_897.method_3933(class_897.java:60)
at net.minecraft.class_898.method_3950(class_898.java:121)
at net.minecraft.class_761.method_22710(class_761.java:1199)
at net.minecraft.class_757.method_3188(class_757.java:1026)

-- Affected level --
Details:
All players: 1 total; [class_746['Blonde_Beej'/250, l='ClientLevel', x=264.50, y=63.00, z=-16.50]]
Chunk stats: 1369, 441
Level dimension: minecraft:overworld
Level spawn location: World: (257,63,-12), Section: (at 1,15,4 in 16,3,-1; chunk contains blocks 256,0,-16 to 271,255,-1), Region: (0,-1; contains chunks 0,-32 to 31,-1, blocks 0,0,-512 to 511,255,-1)
Level time: 3 game time, 3 day time
Server brand: fabric
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.class_638.method_8538(class_638.java:370)
at net.minecraft.class_310.method_1587(class_310.java:2399)
at net.minecraft.class_310.method_1514(class_310.java:752)
at net.minecraft.client.main.Main.main(Main.java:217)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:234)
at net.fabricmc.loader.launch.knot.Knot.launch(Knot.java:153)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
at org.multimc.EntryPoint.listen(EntryPoint.java:143)
at org.multimc.EntryPoint.main(EntryPoint.java:34)

-- Last reload --
Details:
Reload number: 1
Reload reason: initial
Finished: Yes
Packs: Default, Fabric Mods

-- System Details --
Details:
Minecraft Version: 1.17.1
Minecraft Version ID: 1.17.1
Operating System: Mac OS X (aarch64) version 11.5.2
Java Version: 16.0.2, Azul Systems, Inc.
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Azul Systems, Inc.
Memory: 397748664 bytes (379 MiB) / 2063597568 bytes (1968 MiB) up to 5100273664 bytes (4864 MiB)
CPUs: 8
Processor Vendor: Apple Inc.
Processor Name: Apple M1
Identifier: Apple Inc. Family 0x1b588bb3 Model 0 Stepping 0
Microarchitecture: ARM64 SoC: Firestorm + Icestorm
Frequency (GHz): 24.00
Number of physical packages: 1
Number of physical CPUs: 8
Number of logical CPUs: 8
Graphics card #0 name: Apple M1
Graphics card #0 vendor: Apple (0x106b)
Graphics card #0 VRAM (MB): 0.00
Graphics card #0 deviceId: unknown
Graphics card #0 versionInfo: unknown
Memory slot #0 capacity (MB): 0.00
Memory slot #0 clockSpeed (GHz): 0.00
Memory slot #0 type: unknown
Virtual memory max (MB): 9216.00
Virtual memory used (MB): 6005.66
Swap memory total (MB): 1024.00
Swap memory used (MB): 60.75
JVM Flags: 2 total; -Xms1024m -Xmx4864m
Launched Version: MultiMC5
Backend library: LWJGL version 3.2.3 SNAPSHOT
Backend API: Apple M1 GL version 4.1 Metal - 71.7.1, Apple
Window size: 1708x960
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Integrated Server (map_client.txt)
GPU Warnings: version: Metal
Graphics mode: fancy
Resource Packs: Fabric Mods
Current Language: English (US)
CPU: 8x Apple M1
Player Count: 1 / 8; [class_3222['Blonde_Beej'/250, l='ServerLevel[New World]', x=264.50, y=63.00, z=-16.50]]
Data Packs: vanilla

Additional information

Attempting to work around this issue by disabling sodium's chunk rendering. I assume, given it is a setting designed for user configuration, that this shouldn't break the game upon diabling. Am I incorrect in this?

commented

You're right that the game shouldn't break, but it's not really a supported configuration. The issue is that some mixins have dependencies upon others, and our configuration system doesn't really handle this situation.

In the future, we will need to fix this in the configuration system, but for the time being the relevant patches will simply do nothing if the renderer is not available.