Hi Frank, In addition to what Ken said, If you switch to 10.6.5 make sure you have set in your build and runtime. export MESA_GL_VERSION_OVERRIDE=3.2.
- Aashish On Thu, Dec 10, 2015 at 9:18 AM, Ken Martin <[email protected]> wrote: > Thanks Frank, > > This is an area we are actively working to cleanup right now. Both in > catching it more gracefully and in providing better messages to help people > understand what the next step should be. I believe if you are in an Intel > based system that using their new SWR backend for mesa ( > http://openswr.org/ ) might give the best software rendering performance. > I think it requires a more recent version of Mesa, we suggest Mesa 10.6.5 > or later for VTK. Other people on this list are more familiar with the > specifics of setting up SWR and Mesa on a cluster but I wanted to at least > give you a quick response to let you know we are working on it :-) > > Thanks > Ken > > > > > > On Thu, Dec 10, 2015 at 8:47 AM, Albina, Frank < > [email protected]> wrote: > >> Hi all! >> >> >> >> First of all, thanks for all the effort spent on porting the rendering >> engine to support the OpenGL2 backend by default on PV 5.0.0. Early tests >> with the binary from the download page shows a massive improvement over the >> PV 4.1 to 4.3 versions in terms of rendering time. I have repeated the test >> over a few different GPUs and got the same results. >> >> >> >> Which brought me to thinking that similar performance improvements could >> be also achieved when performing software rendering with the MESA >> libraries. I downloaded the PV sources for the 5.0.0-RC1 release yesterday >> and compiled it with MESA and MPI support. MPI version is Intel 5.0.1 and >> MESA version is 10.5.5. The MESA libraries are compiled using: >> >> >> >> ./configure --enable-64-bit --enable-texture-float --enable-osmesa >> --disable-egl --disable-xorg --disable-xvmc --disable-opencl --disable-glx >> --disable-dri --disable-va --disable-shared-glapi --enable-gallium-llvm=no >> --with-gnu-ld --with-osmesa-bits=8 --disable-vdpau >> --enable-dependency-tracking --with-gallium-drivers=”” >> --with-dri-drivers=”” --with-egl-platforms=”” >> >> >> >> Which corresponds to a “classic” compilation without LLVM support. >> Believe it or not, this was found to run faster on our CPU cluster than >> with the LLVM drivers. >> >> >> >> After linking PV 5.0.0 against the MESA libs with the OpenGL2 backend, I >> started running a simple benchmark to check possible performance benefits >> and here is the error output I got: >> >> >> >> GL_Version: 2.1 Mesa 10.5.5 >> >> Warning: In >> /panfs/srvpan01/code/repo/build/paraview-5.0.0-rc1/src/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, >> line 549 >> >> vtkOSOpenGLRenderWindow (0x3c0eef60): VTK is designed to work with OpenGL >> version 3.2 but it appears it has been given a context that does not >> support 3.2. VTK will run in a compatibility mode designed to work with >> OpenGL 2.1 but some features may not work. >> >> >> >> ERROR: In >> /panfs/srvpan01/code/repo/build/paraview-5.0.0-rc1/src/VTK/Rendering/OpenGL2/vtkShaderProgram.cxx, >> line 369 >> >> vtkShaderProgram (0x4d4dbfe0): 1: #version 120 >> >> 2: #extension GL_EXT_gpu_shader4 : require >> >> 3: #define highp >> >> 4: #define mediump >> >> 5: #define lowp >> >> 6: >> >> 7: >> /*========================================================================= >> >> 8: >> >> 9: Program: Visualization Toolkit >> >> 10: Module: vtkPolyDataFS.glsl >> >> 11: >> >> 12: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen >> >> 13: All rights reserved. >> >> 14: See Copyright.txt or http://www.kitware.com/Copyright.htm for >> details. >> >> 15: >> >> 16: This software is distributed WITHOUT ANY WARRANTY; without even >> >> 17: the implied warranty of MERCHANTABILITY or FITNESS FOR A >> PARTICULAR >> >> 18: PURPOSE. See the above copyright notice for more information. >> >> 19: >> >> 20: >> =========================================================================*/ >> >> 21: // Template for the polydata mappers fragment shader >> >> 22: >> >> 23: uniform int PrimitiveIDOffset; >> >> 24: >> >> 25: // VC position of this fragment >> >> 26: varying vec4 vertexVCVSOutput; >> >> 27: >> >> 28: // optional color passed in from the vertex shader, vertexColor >> >> 29: uniform bool OverridesColor; >> >> 30: uniform float opacityUniform; // the fragment opacity >> >> 31: uniform vec3 ambientColorUniform; // intensity weighted color >> >> 32: uniform vec3 diffuseColorUniform; // intensity weighted color >> >> 33: uniform vec3 specularColorUniform; // intensity weighted color >> >> 34: uniform float specularPowerUniform; >> >> 35: >> >> 36: >> >> 37: // optional surface normal declaration >> >> 38: uniform int cameraParallel; >> >> 39: >> >> 40: // extra lighting parameters >> >> 41: uniform int numberOfLights; >> >> 42: uniform vec3 lightColor[6]; >> >> 43: uniform vec3 lightDirectionVC[6]; // normalized >> >> 44: uniform vec3 lightHalfAngleVC[6]; // normalized >> >> 45: >> >> 46: // Texture coordinates >> >> 47: varying vec2 tcoordVCVSOutput; uniform sampler2D texture1; >> >> 48: >> >> 49: // picking support >> >> 50: //VTK::Picking::Dec >> >> 51: >> >> 52: // Depth Peeling Support >> >> 53: //VTK::DepthPeeling::Dec >> >> 54: >> >> 55: // clipping plane vars >> >> 56: //VTK::Clip::Dec >> >> 57: >> >> 58: // the output of this shader >> >> 59: //VTK::Output::Dec >> >> 60: >> >> 61: // Apple Bug >> >> 62: //VTK::PrimID::Dec >> >> 63: >> >> 64: void main() >> >> 65: { >> >> 66: // Apple Bug >> >> 67: //VTK::PrimID::Impl >> >> 68: >> >> 69: //VTK::Clip::Impl >> >> 70: >> >> 71: vec3 ambientColor; >> >> 72: vec3 diffuseColor; >> >> 73: float opacity; >> >> 74: vec3 specularColor; >> >> 75: float specularPower; >> >> 76: ambientColor = ambientColorUniform; >> >> 77: diffuseColor = diffuseColorUniform; >> >> 78: opacity = opacityUniform; >> >> 79: specularColor = specularColorUniform; >> >> 80: specularPower = specularPowerUniform; >> >> 81: vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st); >> >> 82: diffuseColor = texColor.rgb; >> >> 83: opacity = opacity*texColor.a; >> >> 84: if (OverridesColor) { >> >> 85: ambientColor = ambientColorUniform; >> >> 86: diffuseColor = diffuseColorUniform; } >> >> 87: >> >> 88: >> >> 89: // VC position of this fragment >> >> 90: vec4 vertexVC = vertexVCVSOutput; >> >> 91: >> >> 92: // Generate the normal if we are not passed in one >> >> 93: vec3 fdx = >> normalize(vec3(dFdx(vertexVC.x),dFdx(vertexVC.y),dFdx(vertexVC.z))); >> >> 94: vec3 fdy = >> normalize(vec3(dFdy(vertexVC.x),dFdy(vertexVC.y),dFdy(vertexVC.z))); >> >> 95: vec3 normalVCVSOutput = normalize(cross(fdx,fdy)); >> >> 96: if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { >> normalVCVSOutput = -1.0*normalVCVSOutput; } >> >> 97: if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > >> 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; } >> >> 98: >> >> 99: vec3 diffuse = vec3(0,0,0); >> >> 100: vec3 specular = vec3(0,0,0); >> >> 101: for (int lightNum = 0; lightNum < numberOfLights; lightNum++) >> >> 102: { >> >> 103: float df = max(0.0, dot(normalVCVSOutput, >> -lightDirectionVC[lightNum])); >> >> 104: diffuse += ((df) * lightColor[lightNum]); >> >> 105: if (dot(normalVCVSOutput, lightDirectionVC[lightNum]) < 0.0) >> >> 106: { >> >> 107: float sf = pow( max(0.0, >> dot(lightHalfAngleVC[lightNum],normalVCVSOutput)), specularPower); >> >> 108: specular += ((sf) * lightColor[lightNum]); >> >> 109: } >> >> 110: } >> >> 111: diffuse = diffuse * diffuseColor; >> >> 112: specular = specular * specularColor; >> >> 113: gl_FragData[0] = vec4(ambientColor + diffuse + specular, >> opacity); //VTK::Light::Impl >> >> 114: >> >> 115: //VTK::TCoord::Impl >> >> 116: >> >> 117: if (gl_FragData[0].a <= 0.0) >> >> 118: { >> >> 119: discard; >> >> 120: } >> >> 121: >> >> 122: //VTK::DepthPeeling::Impl >> >> 123: >> >> 124: //VTK::Picking::Impl >> >> 125: >> >> 126: } >> >> 127: >> >> >> >> >> >> ERROR: In >> /panfs/srvpan01/code/repo/build/paraview-5.0.0-rc1/src/VTK/Rendering/OpenGL2/vtkShaderProgram.cxx, >> line 370 >> >> vtkShaderProgram (0x4d4dbfe0): 0:2(12): error: extension >> `GL_EXT_gpu_shader4' unsupported in fragment shader >> >> >> >> >> >> APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal >> 11) >> >> >> >> Was it to be expected? If so, is there any chance at all to run PV 5.0.0 >> in batch with MESA support on a CPU cluster? If so, which MESA version is >> required/recommended and what are the compile options to pass? >> >> >> Thank you very much in advance for any answer. >> >> >> >> *Frank Albina * >> >> >> >> _______________________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Please keep messages on-topic and check the ParaView Wiki at: >> http://paraview.org/Wiki/ParaView >> >> Search the list archives at: http://markmail.org/search/?q=ParaView >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/paraview >> >> > > > -- > Ken Martin PhD > Chairman & CFO > Kitware Inc. > 28 Corporate Drive > Clifton Park NY 12065 > 518 371 3971 > > This communication, including all attachments, contains confidential and > legally privileged information, and it is intended only for the use of the > addressee. Access to this email by anyone else is unauthorized. If you are > not the intended recipient, any disclosure, copying, distribution or any > action taken in reliance on it is prohibited and may be unlawful. If you > received this communication in error please notify us immediately and > destroy the original message. Thank you. > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the ParaView Wiki at: > http://paraview.org/Wiki/ParaView > > Search the list archives at: http://markmail.org/search/?q=ParaView > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/paraview > > -- *| Aashish Chaudhary | Technical Leader | Kitware Inc. * *| http://www.kitware.com/company/team/chaudhary.html <http://www.kitware.com/company/team/chaudhary.html>*
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview
