<div dir="ltr">Usually that crash means something failing in initializing OpenGL (or the shader program hit something the local system could not handle) and it crashes later on when it first dereferences the shader program.  Usually VTK is good about displaying an error message in those cases (and usually it fails 100% of the time for a given system, not sometimes) <div><br></div><div>If you have built VTK with testing on you can run </div><div><br></div><div>ctest -R VBOPLY </div><div><br></div><div>or</div><div><br></div><div>ctest -R Apple</div><div><br></div><div>both do a sanity check to see if the hardware has reasonable OpenGL support. Assuming those work OK I would suspect the issue it related to a multi window or multithreading issue where VTK is doing something when OpenGL is set to a different context or thread.</div><div><br></div><div>Ken</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 15, 2016 at 1:40 PM, dei <span dir="ltr"><<a href="mailto:david.ei@novodynamics.com" target="_blank">david.ei@novodynamics.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm attempting to add a VTK 3D mesh viewer to our java app which builds a<br>
triangular mesh from  a CAT scan image series. I'm using the VTK-Java<br>
vtkRenderWindowPanel class to embed the VTK viewer into a JTabbedPane of our<br>
app. It works some of the time, but occasionally crashes with an Access<br>
Violation in the unmanaged vtkShaderProgram->FindUniform() function.<br>
<br>
I was able to break on a crash in a C++ debugger. It crashes attempting to<br>
dereference a null vtkShaderProgram 'this' pointer. I'm not sure how<br>
FindUniform() could be invoked with a null 'this' pointer? Maybe because<br>
FindUniform() is an inline function? Anyway, I've been able to crawl the<br>
call stack and find out that vtkOpenGLPolyDataMapper contains a "Tris"<br>
object, which has a null 'Program', which eventually ends up as the null<br>
'this' pointer. I haven't yet figured out what a 'Tris' is or how it is<br>
initialized.<br>
<br>
I researched the vtkShaderProgram and it seems that it should be managed by<br>
vtkOpenGLPolyDataMapper. I tried updating my NVIDIA video driver but it made<br>
no difference.<br>
<br>
I am very new to VTK and don't yet have a grasp of the 'big picture'. I<br>
apologize if these are very newbie questions:<br>
  Is there a way to force the initialization of the default<br>
vtkShaderProgram?<br>
  Is there a way to check to see that it has been initialized?<br>
  What has to occur to initialize it?<br>
  Any other suggestions would be welcome.<br>
<br>
I should mention that a very simple java app that (no dicom, or CAT image<br>
processing) that uses the same VTK initialization logic seems to be 100%<br>
reliable.<br>
<br>
The call stack looks like:<br>
<br>
>       vtkRenderingOpenGL2-7.0.dll!vtkShaderProgram::FindUniform(const char *<br>
name=0x000007fedd9d4dd8) Line 772       C++<br>
        vtkRenderingOpenGL2-7.0.dll!vtkShaderProgram::SetUniformi(const char *<br>
name=0x000007fedd9d4dd8, int i=0) Line 498      C++<br>
<br>
vtkRenderingOpenGL2-7.0.dll!vtkOpenGLPolyDataMapper::SetMapperShaderParameters(vtkOpenGLHelper<br>
& cellBO={...}, vtkRenderer * ren=0x00000000538a5980, vtkActor *<br>
actor=0x0000000053975d40) Line 1451     C++<br>
<br>
vtkRenderingOpenGL2-7.0.dll!vtkOpenGLPolyDataMapper::UpdateShaders(vtkOpenGLHelper<br>
& cellBO={...}, vtkRenderer * ren=0x00000000538a5980, vtkActor *<br>
actor=0x0000000053975d40) Line 1433     C++<br>
<br>
vtkRenderingOpenGL2-7.0.dll!vtkOpenGLPolyDataMapper::RenderPieceDraw(vtkRenderer<br>
* ren=0x00000000538a5980, vtkActor * actor=0x0000000053975d40) Line 2087        C++<br>
<br>
vtkRenderingOpenGL2-7.0.dll!vtkOpenGLPolyDataMapper::RenderPiece(vtkRenderer<br>
* ren=0x00000000538a5980, vtkActor * actor=0x0000000053975d40) Line 2240        C++<br>
        vtkRenderingCore-7.0.dll!vtkPolyDataMapper::Render(vtkRenderer *<br>
ren=0x00000000538a5980, vtkActor * act=0x0000000053975d40) Line 64      C++<br>
        vtkRenderingOpenGL2-7.0.dll!vtkOpenGLActor::Render(vtkRenderer *<br>
ren=0x00000000538a5980, vtkMapper * mapper=0x000000005398a930) Line 86  C++<br>
        vtkRenderingCore-7.0.dll!vtkActor::RenderOpaqueGeometry(vtkViewport *<br>
vp=0x00000000538a5980) Line 196 C++<br>
        vtkRenderingOpenGL2-7.0.dll!vtkOpenGLRenderer::UpdateGeometry() Line 211<br>
C++<br>
        vtkRenderingOpenGL2-7.0.dll!vtkOpenGLRenderer::DeviceRender() Line 159  C++<br>
        vtkRenderingCore-7.0.dll!vtkRenderer::Render() Line 317 C++<br>
        vtkRenderingCore-7.0.dll!vtkRendererCollection::Render() Line 53        C++<br>
        vtkRenderingCore-7.0.dll!vtkRenderWindow::DoStereoRender() Line 775     C++<br>
        vtkRenderingCore-7.0.dll!vtkRenderWindow::DoFDRender() Line 743 C++<br>
        vtkRenderingCore-7.0.dll!vtkRenderWindow::DoAARender() Line 622 C++<br>
        vtkRenderingCore-7.0.dll!vtkRenderWindow::Render() Line 438     C++<br>
        vtkRenderingOpenGL2-7.0.dll!vtkOpenGLRenderWindow::Render() Line 600    C++<br>
        vtkRenderingCoreJava.dll!Java_vtk_vtkRenderWindow_Render_19(JNIEnv_ *<br>
env=0x000000004d7e79f8, _jobject * obj=0x000000021b00c790) Line 123     C++<br>
        0000000021bca86c()      Unknown<br>
...<br>
<br>
Best Regards,<br>
David Ei<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Crash-in-vtkShaderProgram-vtkOpenGLPolyDataMapper-tp5737734.html" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.com/Crash-in-vtkShaderProgram-vtkOpenGLPolyDataMapper-tp5737734.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Ken Martin PhD<div>Chairman & CFO<br>Kitware Inc.<br>28 Corporate Drive<br>Clifton Park NY 12065<br>518 371 3971<div><br></div><div><span style="font-size:10pt;font-family:Tahoma,sans-serif">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.</span></div></div></div>
</div>