Iris Shaders

Iris Shaders

38M Downloads

Any mod/mob using geckolib become frozen with shaders.

netcore10 opened this issue ยท 21 comments

commented

What happened?

most geckolib mobs get frozen with shaders, is there a workaround for this?

Screenshots

No response

Log output

No response

Minecraft Version

1.19.2

Iris Version

latest for 1.19.2

Operating System

windows 10

What is your GPU?

gtx 1060

Additional context

I tried to find issues elsewhere but can't find much context

commented

I'm not aware of us touching "client ticking" at all.

commented

supposedly geckolib mobs have had problems with shaders for a while, don't know why people havent reached out. here's what i found. Pausing shows the state it should be, unpausing locks/freezes their state again, it happens only with shaders on, but i'm not a coder so i can't investigate further.

commented

Here's what a flying bird looks like with shader's on.
it seems like they're not sending a signal on a changed state or something. Even turning off and on doesn't help.

aefd6ef984641ffb9aef9c11b8b41ebe-Full.mp4
commented

i did manage to find this bernie-g/geckolib#344

"That's someone on the Iris team to look at they make changes to client ticking."

commented

bernie-g/geckolib#387 (comment) Some more comments, something about game time

commented

We need more information from someone like @AzureDoom to figure out what the actual problem is here.

commented

We need more information from someone like @AzureDoom to figure out what the actual problem is here.

I've find a way to reproduce this. It's only happening on animations that use transition ticks with Geckolib. If I have a 0 transition tick, the animations will work fine, but anything 1 or higher causes the animation to stop playing.

This is only present with Iris (I don't play on Forge anymore, so I have no idea if it's happening with Optifine). Without Iris, everything is playing as it should.

Geckolib 1.19.2 and older use it like so: https://github.com/bernie-g/geckolib/blob/1.19/Fabric/core/src/main/java/software/bernie/geckolib3/core/controller/AnimationController.java#L400
Geckolib 1.19.3 (the 4.0 rewrite) does it like so: https://github.com/bernie-g/geckolib/blob/main/Fabric/core/src/main/java/software/bernie/geckolib/core/animation/AnimationController.java#L401-L405

commented

Interesting, thanks for the information. I'm curious, how does Geckolib determine when one frame has passed? I'm curious if this is specifically an issue of the entity renderer being called twice in a single Minecraft frame, once for the shadow pass and once for the normal pass.

commented

any updates?

commented

Interesting, thanks for the information. I'm curious, how does Geckolib determine when one frame has passed? I'm curious if this is specifically an issue of the entity renderer being called twice in a single Minecraft frame, once for the shadow pass and once for the normal pass.

So I have tracked this to the shadow pass 100%. Disabling it in the shader configs allows animations to work perfectly.

commented

If the entity render method is responsible for advancing animations, wouldn't there also be problems when the entity is not on the screen? For correct behavior with or without Iris, the entity animation code probably needs to be written such that it's not sensitive to the number of times that the entity renderer is called each frame, which as I understand it is not currently the case in Geckolib.

commented

Do we have a confirmed minimum viable testing setup in MC 1.19.4 I can test this issue on?

I'll be pushing a fix for this in Geckolib4 and want to confirm its efficacy

commented

Do we have a confirmed minimum viable testing setup in MC 1.19.4 I can test this issue on?

I'll be pushing a fix for this in Geckolib4 and want to confirm its efficacy

Yes, simply have a transition higher of 0 in the controller and use a shader such as this https://modrinth.com/shader/complementary-shaders-v4/version/latest which has entity shadows. With entity shadows on, animations won't play properly. Turning off entity shadows allows them to work properly.

commented

@netcore10 Please confirm whether this still occurs with Geckolib 4.2 or higher

commented

@netcore10 Please confirm whether this still occurs with Geckolib 4.2 or higher

I have to wait for a mob mod that requires geckolib to test first, the mods i used aren't for 1.19.4 yet. Do you know of any mobs that require gecholib in 1.19.4?

commented

Advent of Ascension is in 1.19.4 and has a bunch of geckolib mobs
just summon in an aoa3:embrake and that should be a good enough test

commented

Advent of Ascension is in 1.19.4 and has a bunch of geckolib mobs just summon in an aoa3:embrake and that should be a good enough test

that's for forge is it not? Iris is fabric only, or does this bug happen on optifine,others etc?

commented

In any case i found a mod that requires geckolib, all seems fine so far - no sliding mobs/pausing animations with the very limited few i did find

commented

Might be able to close this one off then @coderbot16

commented

OK, sounds good, thanks for the update!