HyperCubeMC / Iris

(WIP) A new shaders mod for Minecraft intended to be compatible with existing ShadersMod/Optifine shaders
GNU Lesser General Public License v3.0
227 stars 108 forks source link

Crash with immersive portals if no shader pack is installed. #37

Open DerLeole opened 2 years ago

DerLeole commented 2 years ago

Iris and Minecraft Version

iris-mc.1.17-1.1.4-starline for Minecraft 1.17.1

Shaderpack Used

Complementary and None (Disabled)

Are you running Sodium along with Iris?

Yes

Operating System

Windows 10 & Windows 11

What is your GPU?

RTX3080

Java Version

Java 16

Reproduction Steps

  1. Install Sodium, Iris, and Immersive Portals 1.17.1 (0.31-).

Variant 1:

  1. Make sure to unload any shaderpack and or disable shaders in the main menu before loading any map.
  2. Load any world (or presumably server) without any shader loaded.
  3. Wait for the crash.

Variant 2:

  1. Make sure to load any shaderpack and or enable shaders in the main menu before loading any map.
  2. Load any world (or presumably server) without any shader loaded.
  3. Everything should work okay.
  4. Go to the settings and disable shaders or unload all shaderpacks.
  5. Wait for the crash.

Crash Report file and latest.log

---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3

Time: 22/11/2021, 13:20
Description: Unexpected error

java.lang.BootstrapMethodError: java.lang.RuntimeException: Mixin transformation of me.jellysquid.mods.sodium.client.render.chunk.shader.ChunkShaderInterface failed
    at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.64)
    at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.createShader(ShaderChunkRenderer.java:61)
    at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.compileProgram(ShaderChunkRenderer.java:38)
    at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.begin(ShaderChunkRenderer.java:72)
    at me.jellysquid.mods.sodium.client.render.chunk.RegionChunkRenderer.render(RegionChunkRenderer.java:94)
    at me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.renderLayer(RenderSectionManager.java:300)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer(SodiumWorldRenderer.java:218)
    at net.minecraft.client.render.WorldRenderer.renderLayer(WorldRenderer:11587)
    at net.minecraft.client.render.WorldRenderer.render(WorldRenderer:1164)
    at net.minecraft.client.render.GameRenderer.renderWorld(GameRenderer:1026)
    at net.minecraft.client.render.GameRenderer.redirect$zlb000$redirectRenderingWorld(GameRenderer:3122)
    at net.minecraft.client.render.GameRenderer.render(GameRenderer:810)
    at net.minecraft.client.MinecraftClient.render(MinecraftClient:1112)
    at net.minecraft.client.MinecraftClient.run(MinecraftClient:728)
    at net.minecraft.client.main.Main.main(Main:217)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:567)
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:568)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
Caused by: java.lang.RuntimeException: Mixin transformation of me.jellysquid.mods.sodium.client.render.chunk.shader.ChunkShaderInterface failed
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:224)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:133)
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    ... 21 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392)
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234)
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202)
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:222)
    ... 24 more
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [imm_ptl_sodium.mixins.json:MixinIrisSodiumChunkShaderInterface] from phase [DEFAULT] in config [imm_ptl_sodium.mixins.json] from mod [imm_ptl_core] FAILED during APPLY
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:638)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:589)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379)
    ... 27 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Invalid descriptor on imm_ptl_sodium.mixins.json:MixinIrisSodiumChunkShaderInterface->@Inject::onInitIrisSodium(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V from mod imm_ptl_core! Expected (Lme/jellysquid/mods/sodium/client/render/chunk/shader/ShaderBindingContext;Lme/jellysquid/mods/sodium/client/render/chunk/shader/ChunkShaderOptions;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V but found (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V [INJECT Applicator Phase -> imm_ptl_sodium.mixins.json:MixinIrisSodiumChunkShaderInterface -> Apply Injections ->  -> Inject -> imm_ptl_sodium.mixins.json:MixinIrisSodiumChunkShaderInterface->@Inject::onInitIrisSodium(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V from mod imm_ptl_core]
    at Not Enough Crashes deobfuscated stack trace.(1.17.1+build.64)
    at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:565)
    at org.spongepowered.asm.mixin.injection.callback.CallbackInjector.inject(CallbackInjector.java:495)
    at org.spongepowered.asm.mixin.injection.code.Injector.inject(Injector.java:276)
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.inject(InjectionInfo.java:445)
    at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1374)
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1052)
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:400)
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325)
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421)
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363)
    ... 27 more

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.chunk.ShaderChunkRenderer.createShader(ShaderChunkRenderer.java:61)
    at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.compileProgram(ShaderChunkRenderer.java:38)
    at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.begin(ShaderChunkRenderer.java:72)
    at me.jellysquid.mods.sodium.client.render.chunk.RegionChunkRenderer.render(RegionChunkRenderer.java:94)
    at me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.renderLayer(RenderSectionManager.java:300)
    at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer(SodiumWorldRenderer.java:218)
    at net.minecraft.class_761.method_3251(class_761.java:11587)
    at net.minecraft.class_761.method_22710(class_761.java:1164)
    at net.minecraft.class_757.method_3188(class_757.java:1026)
    at net.minecraft.class_757.redirect$zlb000$redirectRenderingWorld(class_757.java:3122)

-- Affected level --
Details:
    All players: 1 total; [class_746['Leolele99'/167, l='ClientWorld minecraft:overworld', x=-246.49, y=63.00, z=240.30]]
    Chunk stats: Client Chunks (ImmPtl) 441
    Level dimension: minecraft:overworld
    Level spawn location: World: (-256,66,240), Section: (at 0,2,0 in -16,4,15; chunk contains blocks -256,0,240 to -241,255,255), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
    Level time: 1147 game time, 1147 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.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:568)
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)

-- 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: Windows 10 (amd64) version 10.0
    Java Version: 16.0.1, Microsoft
    Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft
    Memory: 1592892880 bytes (1519 MiB) / 3254779904 bytes (3104 MiB) up to 8589934592 bytes (8192 MiB)
    CPUs: 16
    Processor Vendor: AuthenticAMD
    Processor Name: AMD Ryzen 7 3700X 8-Core Processor             
    Identifier: AuthenticAMD Family 23 Model 113 Stepping 0
    Microarchitecture: Zen 2
    Frequency (GHz): 3,60
    Number of physical packages: 1
    Number of physical CPUs: 8
    Number of logical CPUs: 16
    Graphics card #0 name: NVIDIA GeForce RTX 3080
    Graphics card #0 vendor: NVIDIA (0x10de)
    Graphics card #0 VRAM (MB): 4095,00
    Graphics card #0 deviceId: 0x2206
    Graphics card #0 versionInfo: DriverVersion=30.0.14.9676
    Memory slot #0 capacity (MB): 8192,00
    Memory slot #0 clockSpeed (GHz): 3,20
    Memory slot #0 type: DDR4
    Memory slot #1 capacity (MB): 8192,00
    Memory slot #1 clockSpeed (GHz): 3,20
    Memory slot #1 type: DDR4
    Memory slot #2 capacity (MB): 8192,00
    Memory slot #2 clockSpeed (GHz): 3,20
    Memory slot #2 type: DDR4
    Memory slot #3 capacity (MB): 8192,00
    Memory slot #3 clockSpeed (GHz): 3,20
    Memory slot #3 type: DDR4
    Virtual memory max (MB): 63414,07
    Virtual memory used (MB): 18519,92
    Swap memory total (MB): 30720,00
    Swap memory used (MB): 0,00
    JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx8G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
    Fabric Mods: 
        cloth-basic-math: Cloth Basic Math 0.5.1
        cloth-config2: Cloth Config v4 5.0.34
        fabric: Fabric API 0.42.1+1.17
        fabric-api-base: Fabric API Base 0.4.0+5847535018
        fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.3.1+5847535018
        fabric-biome-api-v1: Fabric Biome API (v1) 3.2.2+5847535018
        fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.6+5847535018
        fabric-command-api-v1: Fabric Command API (v1) 1.1.4+5847535018
        fabric-commands-v0: Fabric Commands (v0) 0.2.3+5847535018
        fabric-containers-v0: Fabric Containers (v0) 0.1.13+5847535018
        fabric-content-registries-v0: Fabric Content Registries (v0) 0.3.1+5847535018
        fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.6+5847535018
        fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.13+5847535018
        fabric-entity-events-v1: Fabric Entity Events (v1) 1.3.1+5847535018
        fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.11+5847535018
        fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.2+5847535018
        fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.8+5847535018
        fabric-item-api-v1: Fabric Item API (v1) 1.2.5+5847535018
        fabric-item-groups-v0: Fabric Item Groups (v0) 0.3.1+5847535018
        fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.5+5847535018
        fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.3+5847535018
        fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.5+5847535018
        fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.5+5847535018
        fabric-mining-level-api-v1: Fabric Mining Level API (v1) 1.0.2+6d0fac4218
        fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.5+6d0fac4218
        fabric-models-v0: Fabric Models (v0) 0.3.1+5847535018
        fabric-networking-api-v1: Fabric Networking API (v1) 1.0.14+5847535018
        fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.12+5847535018
        fabric-networking-v0: Fabric Networking (v0) 0.3.3+5847535018
        fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.11+6d0fac4218
        fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.5+6d0fac4218
        fabric-particles-v1: Fabric Particles (v1) 0.2.5+5847535018
        fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.13+5847535018
        fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.5+5847535018
        fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.9+5847535018
        fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.6+6d0fac4218
        fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.6+5847535018
        fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.2.1+6d0fac4218
        fabric-rendering-v0: Fabric Rendering (v0) 1.1.7+6d0fac4218
        fabric-rendering-v1: Fabric Rendering (v1) 1.10.1+6d0fac4218
        fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.9+5847535018
        fabric-screen-api-v1: Fabric Screen API (v1) 1.0.5+5847535018
        fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.9+5847535018
        fabric-structure-api-v1: Fabric Structure API (v1) 1.1.14+5847535018
        fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.2.2+5847535018
        fabric-textures-v0: Fabric Textures (v0) 1.0.7+5847535018
        fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.3.1+eb76084f18
        fabric-transfer-api-v1: Fabric Transfer API (v1) 1.5.1+6d0fac4218
        fabricloader: Fabric Loader 0.12.5
        imm_ptl_core: Immersive Portals Core 0.29
        immersive_portals: Immersive Portals 0.29
        iris: Iris 1.1.3-starline+build.639
        java: OpenJDK 64-Bit Server VM 16
        minecraft: Minecraft 1.17.1
        notenoughcrashes: Not Enough Crashes 4.0.0+1.17.1
        q_misc_util: A Miscellaneous Utility Library from qouteall 0.29
        sodium: Sodium 0.3.2+build.7
    Launched Version: fabric-loader-0.12.5-1.17.1
    Backend library: LWJGL version 3.2.2 build 10
    Backend API: NVIDIA GeForce RTX 3080/PCIe/SSE2 GL version 3.2.0 NVIDIA 496.76, NVIDIA Corporation
    Window size: 854x480
    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)
    Graphics mode: fancy
    Resource Packs: vanilla, Fabric Mods
    Current Language: English (US)
    CPU: 16x AMD Ryzen 7 3700X 8-Core Processor 
    Player Count: 1 / 8; [class_3222['Leolele99'/167, l='ServerWorld minecraft:overworld New World', x=-246.49, y=63.00, z=240.30]]
    Data Packs: vanilla, Fabric Mods
    Client Crashes Since Restart: 1
    Integrated Server Crashes Since Restart: 0
    Suspected Mods: Minecraft (minecraft), Fabric Loader (fabricloader), Sodium (sodium)

Additional context

Additional, highly detailled Crashy crash report: https://crashy.net/1sisi2lc4kDITwlTQeKw

Link to issue on the immersive portals page: https://github.com/qouteall/ImmersivePortalsMod/issues/884

Justsnoopy30 commented 2 years ago

This is because iris now uses mixin-based sodium compat, and immersive portals will need changes to work with it. This shouldn't be specific to starline and should happen on the latest upstream Iris commits too.