To test the if substrate coverage node would help with unlit particles, i made an unlit bsdf slab with a ton of noise and pow nodes (lots of shader instructions to ramp up its cost), then put it on a plane and duplicated it so the cost would be very easy to see in stat GPU translucency category. When flipping the coverage node’s weight input from 1 to 0 however, the GPU cost stayed the same, meaning that none of the pixels were getting culled despite their coverage being at 0. When the material uses a LIT slab, those instructions do clearly get culled and I can see a decrease in the GPU cost going from coverage = 1 to = 0, but the instuctions going into the emissive unlit portion are apparently always calculated since the cost only goes down by 1/3 of what i would have expected.
Expected: if coverage=0, the entire slab should be skipped for that pixel.
I’m not sure how to reproduce the issue you’re seeing. Would you be able to provide a simple minimal scene that includes the material and/or detailed repro steps? That way I can investigate and potentially file a bug report.
Thanks a lot for the repro steps and screenshots. I could reproduce the issue on my end and will file a bug report for this. I will post the link to the public issue tracker here once it becomes available.