[vtkusers] segfault with Opengl2 in 6.3.0.rc2

Marcin Krotkiewski marcin.krotkiewski at gmail.com
Mon Sep 14 03:46:22 EDT 2015


FYI, the problem is still present in the final VTK 6.3. The solution 
provided by Ken can be found at

https://gitlab.kitware.com/vtk/vtk/merge_requests/638

Marcin




On 09/08/2015 03:32 PM, Marcin Krotkiewski wrote:
> Hi, Ken,
>
> I have found two issues here. First, I think the vtk.sample.VTKCanvas 
> example (on which I based my simplified code) might be wrong because 
> it does not call frame.setVisible in EDT. From what I have seen in 
> other examples frame.setVisible should be called from InvokeLater. 
> Note that there are other places in Java examples where 
> JFrame.setVisible is called _NOT_ from within InvokeLater. If this is 
> an error, it might be a good idea to fix this.. At least for me 
> changing this partly fixed the problem, i.e., the error was more 
> difficult for me to get in the example, but not in my real code, where 
> frame.setVisible is called from EDT  (I am _almost_ certain of this, 
> as I call Java indirectly from MATLAB, and I do use MATLABs EDT 
> framework).
>
> Hunting the real problem, I have already mentioned that I got error 
> from glewInit. Writing out the reason for the error gave me 'Missing 
> GL version'. I am no expert in OpenGL, so I googled around and 
> understood that this might mean that glewInit was called before OpenGL 
> context was created. Due to this fact glew was not initialized and the 
> code segfaulted on call to glBlendFuncSeparate in OpenGLInitState due 
> to the address being NULL.
>
> This made me experiment with vtkOpenGLRenderWindow and 
> vtkXOpenGLRenderWindow. I have found that from 6.2 you have changed 
> the initialization in vtkXOpenGLRenderWindow::CreateAWindow. In 
> particular, you have added the if statement after '// try for 32 
> context'. Being desperate I have commented out the entire 
> if(this->internal->fbconfig)  statement. This worked for me, i.e., I 
> did not manage to get a glewInit error after the change. Neither in my 
> code, nor in the VTKCanvas sample.
>
> I do not know exactly what this code does, but it might need a second 
> look. From the observed behavior it was very much like a race 
> condition: I was getting the glewInit 'Missing GL version' condition 
> sometimes, but not always. Of course, this might mean that commenting 
> out those lines does not fix anything, just hides the problem.
>
> Let me know if you need more information - I will gladly work towards 
> fixing this.
>
> Marcin
>
>
>
> On 09/08/2015 02:47 PM, Ken Martin wrote:
>>
>> Can either of you verify that the VTK C++ tests work on the system? 
>> E.g.  ctest –R Mace passes?  Just trying to see if this is a general 
>> system/VM issue or tied specifically to Java/OpenGL2 interactions.
>>
>> Thanks
>>
>> Ken
>>
>> Ken Martin PhD
>>
>> Chairman & CFO
>>
>> Kitware Inc.
>>
>> 28 Corporate Drive
>>
>> Clifton Park NY 12065
>>
>> ken.martin at kitware.com <mailto:ken.martin at kitware.com>
>>
>> 919 869-8871 (w)
>>
>> 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.
>>
>> *From:*vtkusers [mailto:vtkusers-bounces at vtk.org 
>> <mailto:vtkusers-bounces at vtk.org>] *On Behalf Of *Jens Schmidt
>> *Sent:* Monday, September 7, 2015 12:53 PM
>> *To:* marcin.krotkiewski; VTK Users
>> *Subject:* Re: [vtkusers] segfault with Opengl2 in 6.3.0.rc2
>>
>> To chime in, the jvm (1.8.60) crashes on debian jessie (virtualbox) 
>> when using the opengl2 rendering backend (vtk 6.3.0rc1 and rc2) and 
>> the swtComponent. The old OpenGL works fine.
>> When not using virtualbox's 3d accelleration the window wont even 
>> open. When activating the 3d accelleration you get a window but as 
>> soon as you add some actors and call update it crashes (some of the 
>> time).
>> Also the jvm crashes when running everything on "real" hardware 
>> (Intel HD Graphics 4600) instead of a virtual machine.
>> Unfortunately i cannot access the logs right now (vacation) if this 
>> still is an issue after, i happily provide any logs you desire :-)
>> Just wanted to let you know, keep up the good work!
>>
>>
>> i also have segfaults with the opengl2 backend on linux (debian 
>> jessie) running on virtualbox.
>>
>> Am 05.09.2015 um 21:32 schrieb marcin.krotkiewski:
>>
>>     I keep getting segfaults when using vtk.sample.VTKCanvas with
>>     OpenGL2 backend in 6.3.0.rc2. This does not happen with 6.2.0 +
>>     OpenGL2, nor with the standard OpenGL backend. I use ubuntu 14.04
>>     and compile with gcc 4.9.2 and jdk1.8.0_60.
>>
>>     On my laptop, the segfaults are 100 reproducible with mesa
>>     library - some lines from glxinfo:
>>
>>
>>     OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
>>     OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.3
>>     OpenGL core profile shading language version string: 3.30
>>
>>
>>     When I use the high performance card (fglrx drivers, Radeon HD
>>     8790M) the segfaults sometimes happen, sometimes not. Lines from
>>     glxinfo:
>>
>>
>>     OpenGL vendor string: Advanced Micro Devices, Inc.
>>     OpenGL renderer string: AMD Radeon HD 8790M
>>     OpenGL core profile version string: 4.3.13374 Core Profile
>>     Context 15.20.1013
>>     OpenGL core profile shading language version string: 4.40
>>
>>
>>     I have attached a simplified java code based on VTKCanvas - In my
>>     experience this one segfaults always, both with mesa, and with
>>     Radeon drivers. I get the following line before vtk dies:
>>
>>
>>     ERROR: In
>>     /home/angainor/bergverk/vtk/VTK-6.3.0.rc2/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx,
>>     line 412
>>     vtkXOpenGLRenderWindow (0x7f110429aa90): GLEW could not be
>>     initialized.
>>
>>
>>     And this is the top of the stack reported by the dying Java VM
>>
>>
>>     R11=0x00007fcbd8a79840: <offset 0x72840> in
>>     /usr/lib/fglrx/libGL.so.1 at 0x00007fcbd8a07000
>>
>>     Stack: [0x00007fcbb94e4000,0x00007fcbb95e5000],
>>     sp=0x00007fcbb95e1148,  free space=1012k
>>     Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
>>     j  vtk.vtkRenderWindow.Render_9()V+0
>>     j  vtk.vtkRenderWindow.Render()V+1
>>     j  vtk.vtkPanel.Render()V+164
>>     j  vtk.vtkPanel.paint(Ljava/awt/Graphics;)V+1
>>
>>     [...]
>>
>>
>>     It seems that this is a problem specific to 6.3.0.rc2 with
>>     OpenGL2. I could not reproduce it for 6.2.0, nor when using
>>     OpenGL backend. Do you know any reason why this could happen? I
>>     will be happy to provide more information and help to solve this.
>>
>>     Cheers,
>>
>>     Marcin
>>
>>
>>
>>
>>     _______________________________________________
>>
>>     Powered bywww.kitware.com <http://www.kitware.com>
>>
>>       
>>
>>     Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html
>>
>>       
>>
>>     Please keep messages on-topic and check the VTK FAQ at:http://www.vtk.org/Wiki/VTK_FAQ
>>
>>       
>>
>>     Search the list archives at:http://markmail.org/search/?q=vtkusers
>>
>>       
>>
>>     Follow this link to subscribe/unsubscribe:
>>
>>     http://public.kitware.com/mailman/listinfo/vtkusers
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150914/bb2c1765/attachment.html>


More information about the vtkusers mailing list