Some kind of a depth buffer regression from 114

Description of the problem

I’ve submitted a depth peel example a while back: #15312
This example depends on this proposal #15490

So i’m not sure if this counts as a regression since i don’t have a meaningful case without using this proposal, but i’d like to point it out regardless, and inquire about what work happened in this area.

This demo runs on r98 and the proposal and everything runs fine. Up to r113 i can apply this diff and get the same behavior:

R113:
peel113

When bumping to R114, the framerate remains, but i get some depth artifacts:
peel114

In the dev branch, my frame rate drops tremendously, and i’ve oddly traced it down to an ordinary render call that happens after all this crazy depth peeling logic, and before the results are shown on the screen. I can actually even render the results with no frame drop, its just when i try to render a partial normal scene in the process, it really goes down.

image

Ie. this is caused by

function complexRenderLogic (){
  // gl stencil stuff
  // gl mask stuff
  // scene overrides
  // many renderer.render( X, Y )
  // many renderer.setRenderTarget( foo )
}

function displayResult(){
  renderer.render( full_screen_quad_scene, camera)
}

function render(){
  complexRenderLogic()
  renderer.render( scene, camera ) // <----- FRAME RATE DROP`
  displayResult()
}

Please let me know if additional information is needed. I could serve the demo with r113, r114 and dev. If this is of no interest since it’s appearing in something thats using a proposal, i’d appreciate it if you could point me in some direction where some recent changes could have affected this. Thank you.

Three.js version
  • Dev
  • r116
  • r115
  • r114
Browser
  • All of them
  • Chrome
  • Firefox
  • Internet Explorer
OS
  • All of them
  • Windows
  • macOS
  • Linux
  • Android
  • iOS

1 possible answer(s) on “Some kind of a depth buffer regression from 114