Skip to content

Vanilla copyDepthFrom(main) from third-party mods breaks on Mesa #193

Description

@burnerfuckmyass

Description

Any third-party mod that calls vanilla RenderTarget.copyDepthFrom(mainTarget) fails every frame on Mesa drivers with:

GL_INVALID_OPERATION in glBlitFramebuffer(depth attachment format mismatch)

With Veil installed, the main target's depth attachment ends up as GL_DEPTH32F_STENCIL8. Mods that create plain vanilla TextureTargets get the unsized GL_DEPTH_COMPONENT default. glBlitFramebuffer requires depth formats to match exactly, and Mesa enforces that, so the depth copy silently fails and the other mod's depth-based effects break. In my case the caller is Creature Feature (its CFGameRendererMixin does copyDepthFrom(main) once per frame per target). Intrablitting on Veil works, it's just interblitting when the game expects vanilla buffers that breaks.

I'm reporting it here because Veil is the one that decides the main target's format, and because PerformanceRenderTargetMixin already intercepts copyDepthFrom, which seems like the natural place to catch the mismatch and fall back to a shader-based copy or do literally anything but explode my log files.

To Reproduce

  1. Install Veil plus Creature Feature 1.2.3.2
  2. Use a machine with a Mesa driver (Linux, Intel/AMD)
  3. Join any world
  4. Watch the log fill with GL_INVALID_OPERATION in glBlitFramebuffer(depth attachment format mismatch) every frame

Expected Behavior

The depth copy either works or openly fails once instead of flooding my log every frame

Screenshots

N/A

System Information

  • Veil Version: 4.3.2 (bundled inside Sable 2.0.5)
  • Minecraft Version: 1.21.1
  • Loader & Loader Version: NeoForge 21.1.248
  • Operating System: NixOS 26.11 (Linux), Mesa 26.2.0
  • CPU: Intel Core i5-6300U
  • GPU: Intel HD Graphics 520 (SKL GT2)
  • RAM: 16GB

Additional Context

Twin of #189?


Update: Dinky little mod that reaches in, scans for, and changes all broken fbo depth attachments to match the correct format every so often works as a workaround for me right now. This might also affect vanilla glowing outlines on Mesa?

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions