Skip to content

[BUG] Enhanced batching breaks ETF skin-feature render layers under Photon shader (MC 26.1.x) — invisible player skins #573

Description

@Raconteur32

Hello !

Human part

First I want to be honest, I found the origin of this problem witht he help of AI. I know that AI reporting can be bullshit, so I will begin with this human part with the facts that I know are 100% true:

Description of the bug

For ETF Skins with emissive features, if the shader photon is applied with and enhanced_batching is activated, the skin will have weird renderings. You can see the screenshots below with what the skin should look like, and what I see when the option is activated:

EDIT: The circular texture is a custoom item placed on the head and is not a mood feature

Image Image

Environment

  • Minecraft 26.1.2 (Fabric Loader 0.19.3)
  • ImmediatelyFast 1.15.3+26.1
  • Iris 1.11.3+mc26.1.2, Sodium 0.9.1+mc26.1.2
  • Shader pack: Photon v1.3b
  • Entity Texture Features (ETF) 7.1, Entity Model Features (EMF) 3.2.4

Why an IF report ?

It seems that similar issues with enhanced_batching were fixed in IF side in the past, and the AI interpretation seems to point in this direction. If I'm wrong, I'm apologize.

AI report

Describe the issue

With Photon active on MC 26.1.2, player skins using ETF skin features (emissive / "enchanted" pixels, added via ETF's skin tool) render with the base skin completely invisible — only the emissive overlay pixels are visible, in both first- and third-person view. The rest of the player model (arms, body, head) is transparent.

This affects multiple players on our server.

Test matrix (minimal instance, everything else identical)

ImmediatelyFast enhanced_batching Photon shader Base skin renders?
not installed — ✅ ✅ yes
installed true ✅ ❌ no — only emissive pixels visible
installed false ✅ ✅ yes
installed true ❌ (shaders disabled) ✅ yes

The bug requires all three: ImmediatelyFast enhanced_batching + Photon + ETF skin-feature skins.

Probable cause

Photon on MC ≥ 26.1 force-enables its separate-entity-draws pipeline (USE_SEPARATE_ENTITY_DRAWS is a hard #define guarded by MC_VERSION >= 260100 in shaders/settings.glsl; translucent entities are composited from a dedicated buffer, cf. blend.gbuffers_entities_translucent.colortex13 = ONE ONE_MINUS_SRC_ALPHA ... and d4_deferred_shading.fsh).

ETF renders skin-feature skins through a custom translucent render layer. With enhanced_batching, the batched draw of that custom translucent layer appears to lose its blend state / ordering when Photon composites it in the deferred pass → the base skin vanishes, while the emissive overlay (rendered through a different path) survives.

Workaround

Set "enhanced_batching": false in config/immediatelyfast.json — fixes the issue completely while keeping ImmediatelyFast's other optimizations.

Similar issues in this repo (already fixed)

Past ETF/EMF conflicts with enhanced batching have been fixed here before by excluding ETF's custom render layers from the batching path — hopefully this can be fixed the same way:

Related issues (other GitHub repos)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions