Block ID not getting passed to gbuffers_block for submodel?

Setup

Windows 10
Minecraft 1.21.1
NeoForge 21.1.133
Iris 1.8.8
Sodium 0.6.9

Minecraft and Iris are functional.

Context

I'm modifying Solas Shader to work with a few more mod blocks. By reading and experimenting with the code, I managed to get an understanding of how Iris is supposed to be used and managed to add almost everything to it already (mod ores, extra ovens and lanterns getting emissions, etc.).

Problem

I do have a strange case of a submodel(?) not getting shaded correctly though (example is amendments:wall_lantern, but it affects other blocks as well, like the Applied Energistics ae2:inscriber):
The block is seemingly correctly added to block.properties. The bar holding the lantern gets identified and shaded correctly by gbuffers_terrain, but the lantern's main body (an object that can swing based on collision) is rendered by gbuffers_block but does not offer its correct blockEntityId during rendering. (Demonstrated in the second picture, where I highlight the problem with if (blockEntityId == -1) { emission = 100.0; })

Is this a known bug/shortcoming that the block ID is not handed through correctly? Do I have to declare the block elsewhere? Do I have to declare the model in a special way to make this work?

If no fix is known I have to get the decompiler out I guess, so not all is lost.

(10+ years of professional GLSL and Java experience here)
image.png
image.png
image.png
Was this page helpful?