Iris Shaders

Iris Shaders

36M Downloads

NewWorldRenderingPipeline fails to load when the game is using RenderDoc

NoComment1105 opened this issue · 1 comments

commented

What happened?

In the process of opening Minecraft through MultiMC using the wrapper command: renderdoccmd capture -w. Shaders will not load. I'll admit i've only tried one shader, but the pipeline is failing and it only happens on Iris with RenderDoc. Optifine 1.16.5 has been tested and does no suffer the same issue. Optifine 1.17.1 has not been tested because MultiMC and for is 🦀

Screenshots

image

Relevant log output

[03:04:42] [Render thread/ERROR]: Couldn't load NewWorldRenderingPipeline, falling back to vanilla shaders.
java.lang.ExceptionInInitializerError: null
	at net.coderbot.iris.postprocess.FinalPassRenderer.createProgram(FinalPassRenderer.java:244) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.postprocess.FinalPassRenderer.lambda$new$0(FinalPassRenderer.java:75) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at java.util.Optional.map(Optional.java:260) ~[?:?]
	at net.coderbot.iris.postprocess.FinalPassRenderer.<init>(FinalPassRenderer.java:71) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.pipeline.newshader.NewWorldRenderingPipeline.<init>(NewWorldRenderingPipeline.java:219) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.Iris.createPipeline(Iris.java:429) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.pipeline.PipelineManager.preparePipeline(PipelineManager.java:32) [iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.minecraft.class_761.handler$zch000$iris$beginWorldRender(class_761.java:3821) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_761.method_22710(class_761.java) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_757.method_3188(class_757.java:1026) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_757.method_3192(class_757.java:810) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_310.method_1523(class_310.java:1112) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.class_310.method_1514(class_310.java:728) [intermediary-minecraft-1.17.1-client.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:217) [intermediary-minecraft-1.17.1-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:568) [fabric-loader-0.12.5.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.12.5.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.12.5.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
Caused by: java.lang.RuntimeException: Failed to initialize StandardMacros!
	at net.coderbot.iris.gl.program.ProgramBuilder.<clinit>(ProgramBuilder.java:34) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	... 29 more
Caused by: java.lang.IllegalArgumentException: Constant MC_GL_KHR_debug is already defined with value 
	at net.coderbot.iris.gl.shader.ShaderConstants$Builder.define(ShaderConstants.java:49) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.gl.shader.ShaderConstants$Builder.define(ShaderConstants.java:41) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at net.coderbot.iris.gl.shader.ShaderConstants$Builder.defineAll(ShaderConstants.java:58) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	at net.coderbot.iris.gl.program.ProgramBuilder.<clinit>(ProgramBuilder.java:31) ~[iris-and-sodium-mc1.17-1.1.2+build.9.jar:?]
	... 29 more

Iris and Minecraft Version

1.1.2

Are you running Sodium along with Iris?

Yes

Operating System

Linux Mint

What is your GPU?

Intel HD 5500 (Mesa Drivers)

Java Version

16/17

Additional context

Both Java 16 and Java 17 have been tested. You need your JDK path to be writable for RenderDoc to even consider working with

commented

Seems like RenderDoc is returning the same extension twice, which is weird behavior, but behavior we shouldn't break on.