Order Independent Transparency and GL_INVALID_OPERATION errors

Hey Guys… when I enable OIT, my application comes to a standstill and I start getting these errors:

GL_INVALID_OPERATION: Active draw buffers with missing fragment shader outputs

I can’t seem to reproduce this in the sandbox, but I’m trying.

The problem seems to be any material with transparency on them (because they render black), such as this:

const chunkMaterial = new PBRMaterial(‘ground’, context.scene);
chunkMaterial.useAmbientOcclusionFromMetallicTextureRed = true;
chunkMaterial.useRoughnessFromMetallicTextureGreen = true;
chunkMaterial.useRoughnessFromMetallicTextureAlpha = false;
chunkMaterial.transparencyMode = PBRMaterial.PBRMATERIAL_ALPHATEST; // PBRMATERIAL_ALPHABLEND
chunkMaterial.useAlphaFromAlbedoTexture = false;
chunkMaterial.maxSimultaneousLights = getMaxSimultaneiousLights(context);
chunkMaterial.metallic = 0;
chunkMaterial.roughness = 0.9;
chunkMaterial.albedoTexture = new Texture(textures.albedo, context.scene);
chunkMaterial.usePhysicalLightFalloff = false;
chunk.material = chunkMaterial;

Again… I can’t seem to reproduce this, so I’m looking for hints where to go next (but I’ll keep trying). Already tried removing setting PBRMATERIAL_ALPHATEST.

Version: a5.5.5
Chrome: Version 101.0.4951.41 (Official Build) (64-bit)

Jerry

Hello! Having a reproduction would be really helpful indeed, I’ll also tag @CraigFeldspar to keep an eye on this :smiley:

1 Like

Still working on this!

1 Like