Summary: | OSMesa Gallium Empty Output | ||
---|---|---|---|
Product: | Mesa | Reporter: | Kevin Hobbs <hobbsk> |
Component: | Mesa core | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | patch for osmesa.c |
Description
Kevin Hobbs
2013-04-04 13:07:21 UTC
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.