Rendering glitches when using vtkSSAOPass and vtkDepthPeelingPass

Your render passes setup looks weird to me. The steps pass should be the delegate of the ssao pass. Here is how the VTK test initializes the render passes:

  vtkNew<vtkRenderStepsPass> basicPasses;

  vtkNew<vtkSSAOPass> ssao;
  ssao->SetRadius(0.05);
  ssao->SetKernelSize(128);
  ssao->SetDelegatePass(basicPasses);

  vtkOpenGLRenderer* glrenderer = vtkOpenGLRenderer::SafeDownCast(renderer);
  glrenderer->SetPass(ssao);

Is the result the same if you use this code?