Program: 117136
Project: 117136
Buggy source:
@Override public void renderParticle(VertexBuffer buffer,Entity entity,float partialTicks,float rotationX,float rotationZ,float rotationYZ,float rotationXY,float rotationXZ){
  Vec3D pos1=new Vec3D(posX - interpPosX,posY - interpPosY,posZ - interpPosZ).offset(facing,-0.35D);
  Vec3D pos2;
  double texOffset=(ClientEventHandler.elapsedTicks + partialTicks) / -150D;
  double coreSize=tile.getCoreDiameter() / 2.3;
  if (!DEShaders.useShaders() || !DEConfig.useReactorBeamShaders) {
    renderWithoutShaders(buffer,pos1,coreSize,texOffset);
    return;
  }
  float animation=(ClientEventHandler.elapsedTicks + partialTicks) * 0.02F;
  texOffset=0;
  if (isInjectorEffect) {
    if (beam_E == null) {
      beam_E=new ShaderProgram();
      beam_E.attachShader(DEShaders.reactorBeamE);
    }
    beam_E.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",fxState);
      cache.glUniform1F("String_Node_Str",1);
      cache.glUniform1F("String_Node_Str",fxState);
    }
);
    pos2=pos1.copy().offset(facing,0.6D);
    renderShaderBeam(buffer,pos1,0.1F,0.1F,0.6D,0,0,true,energyBeamColour);
    beam_E.releaseShader();
    renderShaderBeam(buffer,pos2,0.1F,coreSize / 1.5,dist - (coreSize * 1.3),0,0,false,energyBeamColour);
    beam_E.releaseShader();
  }
 else {
    pos2=pos1.copy().offset(facing,0.8D);
    if (beam_O == null) {
      beam_O=new ShaderProgram();
      beam_O.attachShader(DEShaders.reactorBeamE);
    }
    beam_O.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
      cache.glUniform1F("String_Node_Str",1);
      cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
    }
);
    renderShaderBeam(buffer,pos1,0.263F,0.263F,0.8D,texOffset,0,true,extractBeamColour);
    beam_O.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
      cache.glUniform1F("String_Node_Str",0);
      cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
    }
);
    renderShaderBeam(buffer,pos2,0.263F,coreSize / 2,dist - (coreSize * 1.3),texOffset,0,false,extractBeamColour);
    if (beam_I == null) {
      beam_I=new ShaderProgram();
      beam_I.attachShader(DEShaders.reactorBeamE);
    }
    beam_I.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",fxState);
      cache.glUniform1F("String_Node_Str",1);
      cache.glUniform1F("String_Node_Str",fxState);
    }
);
    renderShaderBeam(buffer,pos1,0.355D,0.355D,0.8D,texOffset,0,true,fieldBeamColour);
    beam_I.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",fxState);
      cache.glUniform1F("String_Node_Str",0);
      cache.glUniform1F("String_Node_Str",fxState);
    }
);
    renderShaderBeam(buffer,pos2,0.355D,coreSize,dist - coreSize,texOffset,0,false,fieldBeamColour);
    beam_I.releaseShader();
  }
}

Fixed version (ground truth):
@Override public void renderParticle(VertexBuffer buffer,Entity entity,float partialTicks,float rotationX,float rotationZ,float rotationYZ,float rotationXY,float rotationXZ){
  Vec3D pos1=new Vec3D(posX - interpPosX,posY - interpPosY,posZ - interpPosZ).offset(facing,-0.35D);
  Vec3D pos2;
  double texOffset=(ClientEventHandler.elapsedTicks + partialTicks) / -150D;
  double coreSize=tile.getCoreDiameter() / 2.3;
  if (!DEShaders.useShaders() || !DEConfig.useReactorBeamShaders) {
    renderWithoutShaders(buffer,pos1,coreSize,texOffset);
    return;
  }
  float animation=(ClientEventHandler.elapsedTicks + partialTicks) * 0.02F;
  texOffset=0;
  if (isInjectorEffect) {
    if (beam_E == null) {
      beam_E=new ShaderProgram();
      beam_E.attachShader(DEShaders.reactorBeamE);
      beam_E.addGlobalUniformCallback(cache -> {
        cache.glUniform1F("String_Node_Str",fxState);
        cache.glUniform1F("String_Node_Str",fxState);
      }
);
    }
    beam_E.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",1);
    }
);
    pos2=pos1.copy().offset(facing,0.6D);
    renderShaderBeam(buffer,pos1,0.1F,0.1F,0.6D,0,0,true,energyBeamColour);
    beam_E.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",0);
    }
);
    renderShaderBeam(buffer,pos2,0.1F,coreSize / 1.5,dist - (coreSize * 1.3),0,0,false,energyBeamColour);
    beam_E.releaseShader();
  }
 else {
    pos2=pos1.copy().offset(facing,0.8D);
    if (beam_O == null) {
      beam_O=new ShaderProgram();
      beam_O.attachShader(DEShaders.reactorBeamO);
      beam_O.addGlobalUniformCallback(cache -> {
        cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
        cache.glUniform1F("String_Node_Str",(float)tile.animExtractState.value);
      }
);
    }
    beam_O.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",1);
    }
);
    renderShaderBeam(buffer,pos1,0.263F,0.263F,0.8D,texOffset,0,true,extractBeamColour);
    beam_O.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",0);
    }
);
    renderShaderBeam(buffer,pos2,0.263F,coreSize / 2,dist - (coreSize * 1.3),texOffset,0,false,extractBeamColour);
    if (beam_I == null) {
      beam_I=new ShaderProgram();
      beam_I.attachShader(DEShaders.reactorBeamI);
      beam_I.addGlobalUniformCallback(cache -> {
        cache.glUniform1F("String_Node_Str",fxState);
        cache.glUniform1F("String_Node_Str",fxState);
      }
);
    }
    beam_I.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",1);
    }
);
    renderShaderBeam(buffer,pos1,0.355D,0.355D,0.8D,texOffset,0,true,fieldBeamColour);
    beam_I.useShader(cache -> {
      cache.glUniform1F("String_Node_Str",animation);
      cache.glUniform1F("String_Node_Str",0);
    }
);
    renderShaderBeam(buffer,pos2,0.355D,coreSize,dist - coreSize,texOffset,0,false,fieldBeamColour);
    beam_I.releaseShader();
  }
}