Both mixins are additive only, they do not affect the underlying class/method behaviour
ETF emissive entity rendering will just safely stop working with Sodium present if these 2 mixins don't apply correctly
ETF mixins to me.jellysquid.mods.sodium.client.render.immediate.model.EntityRenderer.render() so it doesn't have to entirely disable Sodium's entity rendering optimizations, only adding logic to the HEAD & RETURN, ignoring the rest of the method
ETF mixins to me.jellysquid.mods.sodium.client.render.vertex.buffer.SodiumBufferBuilder(seems to now be called DirectBufferBuilder in v0.6) to apply a required interface to hold context for ETF
Detail
ETF has logic for emissive texture rendering that runs at the start and end of ModelPart.render() via a mixin. That will trigger a second render() call for an emissive texture if required.
ETF also mixins to me.jellysquid.mods.sodium.client.render.vertex.buffer.SodiumBufferBuilder to apply a non impactful interface. I can see just now that this class has changed file names 2 weeks ago to DirectBufferBuilder presumably for v0.6
Request Description
Regarding #2329
Summary
Both mixins are additive only, they do not affect the underlying class/method behaviour
ETF emissive entity rendering will just safely stop working with Sodium present if these 2 mixins don't apply correctly
ETF mixins to
me.jellysquid.mods.sodium.client.render.immediate.model.EntityRenderer.render()
so it doesn't have to entirely disable Sodium's entity rendering optimizations, only adding logic to theHEAD
&RETURN
, ignoring the rest of the methodETF mixins to
me.jellysquid.mods.sodium.client.render.vertex.buffer.SodiumBufferBuilder
(seems to now be calledDirectBufferBuilder
in v0.6) to apply a required interface to hold context for ETFDetail
ETF has logic for emissive texture rendering that runs at the start and end of
ModelPart.render()
via a mixin. That will trigger a second render() call for an emissive texture if required.Sodium cancels
ModelPart.render()
and callsme.jellysquid.mods.sodium.client.render.immediate.model.EntityRenderer.render()
instead. https://github.com/CaffeineMC/sodium-fabric/blob/dev/src/main/java/net/caffeinemc/mods/sodium/mixin/features/render/entity/ModelPartMixin.java#L84ETF could just set the flag to disable this sodium entity rendering optimization but in the interest of preserving those optimizations ETF has a duplicate of it's
ModelPart.render()
mixin targeting the start and end ofme.jellysquid.mods.sodium.client.render.immediate.model.EntityRenderer.render()
instead. https://github.com/Traben-0/Entity_Texture_Features/blob/master/common/src/main/java/traben/entity_texture_features/mixin/mods/sodium/MixinModelPartSodium.java With the original ETFModelPart.render()
mixin set to a priority that leaves it fully cancelled by sodium's mixin https://github.com/Traben-0/Entity_Texture_Features/blob/master/common/src/main/java/traben/entity_texture_features/mixin/MixinModelPart.java#L27ETF also mixins to
me.jellysquid.mods.sodium.client.render.vertex.buffer.SodiumBufferBuilder
to apply a non impactful interface. I can see just now that this class has changed file names 2 weeks ago toDirectBufferBuilder
presumably for v0.6