Since OSMesa switched to the Gallium driver VTK tests which use OSMesa produce black output images. Before the change VTK's LoadOpenGLExtension test had : GL_VERSION: 2.1 Mesa 9.2-devel (git-6173cc1) GL_RENDERER: Mesa OffScreen in the output, and after the change it had : GL_VERSION: 2.1 Mesa 9.2.0 (git-f7ef83c) GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.0, 128 bits) VTK sets up the OSMesa contest like this : contextId = OSMesaCreateContext(GL_RGBA, NULL); OSMesaMakeCurrent(contextId, window, GL_UNSIGNED_BYTE, xsize, ysize); VTK gets the image data from OSMesa like: MakeCurrent(); while(glGetError() != GL_NO_ERROR) {}; glReadBuffer(front_or_back);
Created attachment 77643 [details] [review] patch for osmesa.c Kevin, can you try this patch? I think the unique thing that vtk is doing is calling OSMesaMakeCurrent() several times per frame. Each time OSMesaMakeCurrent() was called we're creating new gallium drawing surfaces so any previous rendering to the frame was getting lost. The patch tries to re-use gallium surfaces from one MakeCurrent to the next.
The(In reply to comment #2) > Created attachment 77643 [details] [review] [review] > patch for osmesa.c I tried the patched mesa with VTK's LoadOpenGLExtension test and the test passed. I'm running the rest of VTK's nightly tests now...
The patched OSMesa allows VTK to pass most tests.
OK, great. If you find any significant differences between the old swrast and llvmpipe results, please file another bug. I'll push the patch today.
Patch pushed: acd4fb8b5aa68d6545cf3c7f63d9d2fa1cf73e73
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.