Any mod/mob using geckolib become frozen with shaders.
netcore10 opened this issue ยท 21 comments
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
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.
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
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."
bernie-g/geckolib#387 (comment) Some more comments, something about game time
We need more information from someone like @AzureDoom to figure out what the actual problem is here.
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
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.
We are using the tick from the render method for this https://github.com/bernie-g/geckolib/blob/1.19/Fabric/src/main/java/software/bernie/geckolib3/renderers/geo/GeoEntityRenderer.java#L188
Though we do a little more stuff here: https://github.com/bernie-g/geckolib/blob/1.19/Fabric/src/main/java/software/bernie/geckolib3/model/AnimatedGeoModel.java#L61
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.
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.
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
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.
@netcore10 Please confirm whether this still occurs with Geckolib 4.2 or higher
@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?
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
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?
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
Might be able to close this one off then @coderbot16