TestGlyph3DMapperPicking silently failing since CPDM2
I found this error after making a small change to how depth buffers are updated while multisampling:
https://open.cdash.org/testDetails.php?test=495715128&build=4620844
It's been failing for a while with an image error of 9, but my patch for some reason pushed it above the threshold to 12.
Bisecting the behavior points to the new vtkCompositePolyDataMapper2
implementation (7912d340) as the culprit.
Inspecting the selection buffer shows that the glyphs have varying values during the id pass, though each glyph instance is supposed to be uniform (image enlarged/brightened):
This is causing non-selected points to be incorrectly picked.
Other notes:
- Seems to be related to multisampling. This is one of the few tests that doesn't turn it off, and disabling MSAA in the test fixes the bug. Looks like this may be a general issue with picking + MSAA.
- I've verified that we are in fact disabling MSAA with
glDisable(GL_MULTISAMPLE)
while rendering the selection buffers. - Inspecting the selection buffer produced by an apitrace replay oddly enough does NOT show the buggy selection buffer -- all pixels belonging to a glyph share the correct id.
- This doesn't seem to be platform / driver specific, it's happened on linux and windows (osx/ogl2 coverage is spotty, not sure if it happens there): https://open.cdash.org/index.php?compare1=63&filtercount=2&field1=buildname%2Fstring&project=VTK&field2=buildstarttime%2Fdate&showfilters=0&limit=100&compare2=83&value1=e102e48d&showfeed=0&value2=20161031T152056
- This is really weird.