enthought / mayavi

3D visualization of scientific data in Python
http://docs.enthought.com/mayavi/mayavi/
Other
1.28k stars 282 forks source link

savefig problem (software rendering issue) #8

Open itohnobue opened 13 years ago

itohnobue commented 13 years ago

Hello again! This issue is about software rendering too. On some machines without 3D acceleration (or with minor OpenGL support i.e. on Intel integrated cards) mlab's savefig function crashes the entire application somewhere inside vtk dll. This issue applies to vtk 5.2, 5.4, and 5.6.

I'll try to run it under debugger and retrive the callstack in DLL libraries later.

Update: forgot to mention that I'm using it with offscreen rendering enabled.

itohnobue commented 13 years ago

Stacktrace:

WARNING: Stack unwind information not available. Following frames may be wrong.
MSVCR90!strstr+0x1e
vtkRendering!vtkOpenGLRenderWindow::CreateHardwareOffScreenWindow+0x97
OPENGL32!wglSwapMultipleBuffers+0x51c

Errors output:

*** WARNING: Unable to verify checksum for vtkRendering.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for vtkRendering.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\OPENGL32.dll - 
0:000> g
(6cc.af8): Access violation - code c0000005 (!!! second chance !!!)
eax=00000000 ebx=0f1926d8 ecx=0da35bcc edx=0016654d esi=00000000 edi=00000000
eip=7855bece esp=0012bcec ebp=0000010a iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200206
itohnobue commented 13 years ago

I found this thread with the same error (well, It looks similar): http://enthought-dev.117412.n3.nabble.com/Mayavi-offscreen-rendering-td681775.html But seems like there is no fix for this case so far(

itohnobue commented 13 years ago

Update: if offscreen rendering is OFF it doesn't crash, but:

1) On machine with OpenGL problems the resulted image has black lines on it. Seems like this lines are the borders between the small shots (as I understand it takes a number of 'screenshots' and bundle them together to get the entire image).

2) On machine with fully operational OpenGL the resulted image is corrupted, like it was bundled together erroneously. Small screenshots are placed on wrong places.

Both of the images can be found here: http://www.dropmocks.com/mVe6h

itohnobue commented 13 years ago

So, I'll try to summarize:

1) Machine without OpenGL (software rendering case): crash in vtk dll if offscreen is ON and black lines on the image if offscreen is OFF 2) Machine with 'good' OpenGL: everything is OK if offscreen is ON and corrupted image if offscreen is OFF

Update: on another machine (with the Intel Card and 'bad' OpenGL) the image is corrupted and has black lines simultaneously.

itohnobue commented 13 years ago

Update: It crashes only if the rendered scene size (image size) is not equal to the current scene size.

itohnobue commented 13 years ago

Okay, I managed to get it working on 'bad' OpenGL machines with offscreen = ON by replacing savefig's size parameter with magnification, but black lines are still here.

stefanoborini commented 8 years ago

Still relevant for more recent versions of VTK and mayavi?