Dear Aashish & Ken! Thank you very much for your swift replies.
I had read from the Kitware blog that OpenSWR would bring additional performance but is still in “alpha” stage, therefore I have been concentrating on “standard” MESA first. I was missing the bit of information requiring to set the MESA_GL_VERSION_OVERRIDE. I will therefore arrange to compile a newer MESA version and re-compile PV-5.0.0-rc1 and will let you know the outcome. If everything runs smoothly, I should be able to give you feedback on what the results of my test benchmarks are. Cheers, Fran,. From: Aashish Chaudhary [mailto:aashish.chaudh...@kitware.com] Sent: Donnerstag, 10. Dezember 2015 15:55 To: Ken Martin Cc: Albina, Frank; paraview@paraview.org Subject: Re: [Paraview] Paraview v5.0.0-RC1 with OpenGL2 backend not running using OSMESA v10.5.5 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 <ken.mar...@kitware.com<mailto:ken.mar...@kitware.com>> 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 <frank.alb...@sauber-motorsport.com<mailto:frank.alb...@sauber-motorsport.com>> 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<http://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<tel:518%20371%203971> 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<http://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
_______________________________________________ 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