Iris uses a Redirect to sort the entity list during rendering when a ModifyVariable would work, increasing the likelihood of mod conflicts
AlphaMode opened this issue ยท 4 comments
Iris and Minecraft Version
iris-and-sodium-mc-1.17-1.1.2+build.9.jar
Are you running Sodium along with Iris?
Yes
Operating System
Windows 10
What is your GPU?
GeForce GTX (I don't know the model but its a mobile one)
Java Version
Java 16
Reproduction Steps
- Crashes on launch due to which Twilight Forest also redirects to render its multipart entities
Crash Report file and latest.log
---- Minecraft Crash Report ----
// I bet Cylons wouldn't have this problem.
Time: 9/14/21, 11:28 AM
Description: Initializing game
org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:162)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:154)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at net.minecraft.class_310.<init>(class_310.java:573)
at net.minecraft.client.main.Main.main(Main.java:179)
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)
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector renderMultiparts(Lnet/minecraft/class_638;)Ljava/lang/Iterable; in twilightforest.mixins.json:client.LevelRendererMixin failed injection check, (0/1) succeeded. Scanned 1 target(s). No refMap loaded.
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:408)
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1291)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1042)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:395)
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:320)
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:345)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:569)
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:351)
... 15 more
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Thread: Render thread
Stacktrace:
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:162)
at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:154)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at net.minecraft.class_310.<init>(class_310.java:573)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.main.Main.main(Main.java:179)
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)
-- System Details --
Details:
Minecraft Version: 1.17.1
Minecraft Version ID: 1.17.1
Operating System: Windows 10 (amd64) version 10.0
Java Version: 16.0.1, Microsoft
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
Memory: 1310798856 bytes (1250 MiB) / 1811939328 bytes (1728 MiB) up to 2147483648 bytes (2048 MiB)
CPUs: 12
Processor Vendor: GenuineIntel
Processor Name: Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Identifier: Intel64 Family 6 Model 158 Stepping 10
Microarchitecture: Coffee Lake
Frequency (GHz): 2.21
Number of physical packages: 1
Number of physical CPUs: 6
Number of logical CPUs: 12
Graphics card #0 name: Intel(R) UHD Graphics 630
Graphics card #0 vendor: Intel Corporation (0x8086)
Graphics card #0 VRAM (MB): 1024.00
Graphics card #0 deviceId: 0x3e9b
Graphics card #0 versionInfo: DriverVersion=23.20.16.4973
Graphics card #1 name: NVIDIA GeForce GTX 1060 with Max-Q Design
Graphics card #1 vendor: NVIDIA (0x10de)
Graphics card #1 VRAM (MB): 4095.00
Graphics card #1 deviceId: 0x1c20
Graphics card #1 versionInfo: DriverVersion=27.21.14.6231
Memory slot #0 capacity (MB): 8192.00
Memory slot #0 clockSpeed (GHz): 2.67
Memory slot #0 type: DDR4
Memory slot #1 capacity (MB): 8192.00
Memory slot #1 clockSpeed (GHz): 2.67
Memory slot #1 type: DDR4
Virtual memory max (MB): 31025.23
Virtual memory used (MB): 22051.21
Swap memory total (MB): 14848.00
Swap memory used (MB): 1342.42
JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Fabric Mods:
architectury: Architectury 2.0.7
cardinal-components-base: Cardinal Components API (base) 3.0.0
cardinal-components-entity: Cardinal Components API (entities) 3.0.0
cloth-api: Cloth API 2.0.54
cloth-basic-math: Cloth Basic Math 0.5.1
cloth-client-events-v0: Cloth Client Events v0 2.0.54
cloth-common-events-v1: Cloth Common Events v1 2.0.54
cloth-config2: Cloth Config v5 5.0.38
cloth-datagen-api-v1: Cloth Datagen v1 2.0.54
cloth-scissors-api-v1: Cloth Scissors API v1 2.0.54
cloth-utils-v1: Cloth Utils v1 2.0.54
com_electronwill_night-config_core: core 3.6.3
com_electronwill_night-config_toml: toml 3.6.2
fabric: Fabric API 0.40.1+1.17
fabric-api-base: Fabric API Base 0.3.0+a02b446313
fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.3.0+cbda931818
fabric-biome-api-v1: Fabric Biome API (v1) 3.2.0+cbda931818
fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+a02b446318
fabric-command-api-v1: Fabric Command API (v1) 1.1.3+5ab9934c18
fabric-commands-v0: Fabric Commands (v0) 0.2.2+92519afa18
fabric-containers-v0: Fabric Containers (v0) 0.1.12+cbda931818
fabric-content-registries-v0: Fabric Content Registries (v0) 0.3.0+cbda931818
fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.5+be9da31018
fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.11+6cefd57718
fabric-entity-events-v1: Fabric Entity Events (v1) 1.2.3+87cc6e4c18
fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.10+fc40aa9d18
fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+92519afa18
fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.7+cbda931818
fabric-item-api-v1: Fabric Item API (v1) 1.2.4+cbda931818
fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.10+b7ab612118
fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+cbda931818
fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.2+36b77c3e18
fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.4+a02b44633d
fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.4+a02b446318
fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+92519afa18
fabric-models-v0: Fabric Models (v0) 0.3.0+a02b446318
fabric-networking-api-v1: Fabric Networking API (v1) 1.0.13+cbda931818
fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.11+a02b446318
fabric-networking-v0: Fabric Networking (v0) 0.3.2+92519afa18
fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.9+cbda931818
fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.3+a02b446318
fabric-particles-v1: Fabric Particles (v1) 0.2.4+a02b446318
fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.10+e2961fee18
fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.4+cbda931818
fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.8+cbda931818
fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.3+4658223018
fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+a02b446313
fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.14+4658223018
fabric-rendering-v0: Fabric Rendering (v0) 1.1.4+4658223018
fabric-rendering-v1: Fabric Rendering (v1) 1.8.2+ffb6d41e18
fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.8+a00e834b18
fabric-screen-api-v1: Fabric Screen API (v1) 1.0.4+198a96213d
fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.8+cbda931818
fabric-structure-api-v1: Fabric Structure API (v1) 1.1.13+5ab9934c18
fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.2.1+b06cb95b18
fabric-textures-v0: Fabric Textures (v0) 1.0.6+a02b446318
fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.12+b7ab612118
fabric-transfer-api-v1: Fabric Transfer API (v1) 1.3.1+4658223018
fabricloader: Fabric Loader 0.11.6
iris: Iris 1.1.2+build.9
java: OpenJDK 64-Bit Server VM 16
minecraft: Minecraft 1.17.1
modid: Example Mod 1.0.8
modmenu: Mod Menu 2.0.4
mojangster: Mojangster 1.17-1.4.0
patchwork-eventbus: Patchwork EventBus 2.1.0
roughlyenoughitems: Roughly Enough Items 6.0.249-alpha
sodium: Sodium 0.3.2+IRIS2-build.9
twilightforest: The Twilight Forest 4.0
Launched Version: fabric-loader-0.11.6-1.17.1
Backend library: LWJGL version 3.2.2 build 10
Backend API: GeForce GTX 1060 with Max-Q Design/PCIe/SSE2 GL version 3.2.0 NVIDIA 462.31, NVIDIA Corporation
Window size: <not initialized>
GL Caps: Using framebuffer using OpenGL 3.2
GL debug messages:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fabric'
Type: Client (map_client.txt)
CPU: 12x Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Additional context
No response
I think it would be easier if both mods used the more appropriate ModifyVariable injector here, with TwilightForest using the default mixin priority and Iris using a higher mixin priority in order to ensure that the sorting is applied after TF adds its entities to the list.