function executeTranslucentCommandsSortedMultipass(
  oit,
  scene,
  executeFunction,
  passState,
  commands,
  invertClassification,
) {
  const { context, frameState } = scene;
  const { useLogDepth, shadowState } = frameState;
  const useHdr = scene._hdr;
  const framebuffer = passState.framebuffer;

  const lightShadowsEnabled = shadowState.lightShadowsEnabled;

  passState.framebuffer = oit._adjustTranslucentFBO.framebuffer;
  oit._adjustTranslucentCommand.execute(context, passState);
  passState.framebuffer = oit._adjustAlphaFBO.framebuffer;
  oit._adjustAlphaCommand.execute(context, passState);

  const debugFramebuffer = oit._opaqueFBO.framebuffer;
  passState.framebuffer = oit._translucentFBO.framebuffer;

  for (let j = 0; j < commands.length; ++j) {
    let command = commands[j];
    command = useLogDepth ? command.derivedCommands.logDepth.command : command;
    command = useHdr ? command.derivedCommands.hdr.command : command;
    const derivedCommand =
      lightShadowsEnabled && command.receiveShadows
        ? command.derivedCommands.oit.shadows.translucentCommand
        : command.derivedCommands.oit.translucentCommand;
    executeFunction(derivedCommand, scene, passState, debugFramebuffer);
  }

  if (defined(invertClassification)) {
    const command = invertClassification.unclassifiedCommand;
    const derivedCommand =
      lightShadowsEnabled && command.receiveShadows
        ? command.derivedCommands.oit.shadows.translucentCommand
        : command.derivedCommands.oit.translucentCommand;
    executeFunction(derivedCommand, scene, passState, debugFramebuffer);
  }

  passState.framebuffer = oit._alphaFBO.framebuffer;

  for (let j = 0; j < commands.length; ++j) {
    let command = commands[j];
    command = useLogDepth ? command.derivedCommands.logDepth.command : command;
    command = useHdr ? command.derivedCommands.hdr.command : command;
    const derivedCommand =
      lightShadowsEnabled && command.receiveShadows
        ? command.derivedCommands.oit.shadows.alphaCommand
        : command.derivedCommands.oit.alphaCommand;
    executeFunction(derivedCommand, scene, passState, debugFramebuffer);
  }

  if (defined(invertClassification)) {
    const command = invertClassification.unclassifiedCommand;
    const derivedCommand =
      lightShadowsEnabled && command.receiveShadows
        ? command.derivedCommands.oit.shadows.alphaCommand
        : command.derivedCommands.oit.alphaCommand;
    executeFunction(derivedCommand, scene, passState, debugFramebuffer);
  }

  passState.framebuffer = framebuffer;
}
@private
@param {OIT} oit
@param {Scene} scene
@param {Function} executeFunction
@param {PassState} passState
@param {DrawCommand[]} commands
@param {InvertClassification} invertClassification