iPortalTeam / ImmersivePortalsMod

Non-Euclidean in Minecraft. See through portals and teleport seamlessly.
https://qouteall.fun/immptl/
Apache License 2.0
450 stars 109 forks source link

Shader not working (Fabric) #1345

Closed VsUK closed 1 year ago

VsUK commented 1 year ago

Is it a mod compatibility issue?

Yes

Minecraft version

1.19.2

Describe the issue

I've just spent the best part of 2 hours sifting through mods trying to find the cause of this problem. It turns out that it's this mod, when in use, it just stops any & all shaders from working, even the most basic of shaders.

Now, I consider this a significant flaw because a lot of people play with shaders for that realism look. And this issue basically kills the mod for me.

qouteall commented 1 year ago

ImmPtl works with some shaderpacks on some hardware. Too outdated hardware cannot run shader with ImmPtl even if it can run shader without ImmPtl because Immptl uses some new OpenGL features in Iris compatibility.

Which videocard are you using?

RoootTheFox commented 1 year ago

I have the same issue.

I noticed that shaders do work with older versions of Iris (the latest version that worked for me was Iris 1.4.5)

When trying to load shaders, the following mixin error appears:

[21:56:25] [Render thread/ERROR]: Mixin apply for mod imm_ptl_core failed imm_ptl_compat.mixins.json:MixinIrisSodiumSodiumTerrainPipeline from mod imm_ptl_core -> net.coderbot.iris.pipeline.SodiumTerrainPipeline: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on onGetTerrainVertexShaderSource could not find any targets matching 'getTerrainVertexShaderSource' in net.coderbot.iris.pipeline.SodiumTerrainPipeline. Using refmap imm_ptl_core-refmap.json [PREINJECT Applicator Phase -> imm_ptl_compat.mixins.json:MixinIrisSodiumSodiumTerrainPipeline from mod imm_ptl_core -> Prepare Injections ->  -> handler$dgd000$imm_ptl_core$onGetTerrainVertexShaderSource(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on onGetTerrainVertexShaderSource could not find any targets matching 'getTerrainVertexShaderSource' in net.coderbot.iris.pipeline.SodiumTerrainPipeline. Using refmap imm_ptl_core-refmap.json [PREINJECT Applicator Phase -> imm_ptl_compat.mixins.json:MixinIrisSodiumSodiumTerrainPipeline from mod imm_ptl_core -> Prepare Injections ->  -> handler$dgd000$imm_ptl_core$onGetTerrainVertexShaderSource(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]

software/hardware information: OS: Arch Linux x86_64 Java: JDK 17 Temurin GPU: AMD RX 6900XT Minecraft: 1.19.2 Sodium: 0.4.4+build.18 Iris: 1.6.2

I've made a branch with a fix for getting shaders to load (just fixes mixin errors), shaders appear to break really easily near portals though.

The entire source code of every mod involved in this goes over my head, but I thought I'd contribute my findings to this issue c:

qouteall commented 1 year ago

@RoootTheFox It's recommended to use 1.19.4. In 1.19.2 ImmPtl is only compatible with Iris 1.4.0.

And not all shaderpacks are compatible, it's recommended to use BSL shader

RoootTheFox commented 1 year ago

@RoootTheFox It's recommended to use 1.19.4. In 1.19.2 ImmPtl is only compatible with Iris 1.4.0.

And not all shaderpacks are compatible, it's recommended to use BSL shader

Im unable to use 1.19.4 because of other mods, ill stick to an older version of iris or use my hacky patch - just thought I'd mention this here as workaround