[vtkusers] Display Error under Ubuntu 16.04
Andrea Borsic
aborsic at ne-scientific.com
Wed Nov 16 12:01:31 EST 2016
I have further simplified the script (it still crashes under Ubuntu and
not under Windows)
Best,
Andrea
On 11/16/2016 5:29 PM, Andrea Borsic wrote:
> Thanks for your test.
>
> My hint to the problem is wrong though - I have realized that MaxId
> is equal to size() - 1 and not NumberOfTuples() -1, so the MaxId shown
> by print() is correct.
>
> I will do some more digging,
>
> Best and thanks,
>
> Andrea
>
>
> On 16/11/2016 17:13, Bill Lorensen wrote:
>> I get the same error on my Ubuntu14.04 build.
>>
>> On Wed, Nov 16, 2016 at 10:38 AM, Andrea Borsic
>> <aborsic at ne-scientific.com> wrote:
>>> Hi All,
>>>
>>> Apologies for the long hiatus, but I would like to understand why
>>> the crash
>>> I and Elvis are experiencing is occurring. I am half convinced it
>>> could be a
>>> bug in the numpy support functions, and wanted to share my knowledge
>>> so far
>>> in order to hear any possible feedback.
>>>
>>> I am attaching a new Python script, which is simpler and self
>>> contained now.
>>> The script builds a vtkUnstructuredGrid with a single tetrahedra and
>>> displays it. The script does not crash under Windows, but crashes under
>>> Ubuntu 16.04 / VTK 7.1RC2 / OpenGL2
>>>
>>> The dataset has only 4 points and the only cell of the dataset (a
>>> tetrahedra) is described by the list of nodes [0,1,2,3] to which is
>>> pre-pended a "4" to indicate that 4 points describe the cell, the
>>> cell data
>>> is therefore [4,0,1,2,3]. The cell data is automatically converted from
>>> numpy to vtk using the vtk numpy support functions.
>>>
>>> Printing the VTK converted cell_data (line 47) shows the output
>>> attached
>>> below:
>>>
>>> In the output the MaxId is 4, but the number of tuples is 1,
>>> shouldn't the
>>> MaxId therefore be 0 (the shape of the array is (1,5) )? Can this be
>>> the
>>> source of the problem ?
>>>
>>> Similarly if a (2x5) numpy array is converted to vtk with
>>> vtk_np.numpy_to_vtkIdTypeArray, the resulting array has a MaxId of
>>> 9, which
>>> in my opininion should be 1. I will dig some more into the
>>> vtk_np.numpy_to_vtkIdTypeArray function ...
>>>
>>> Thanks for any comment,
>>>
>>> Best Regards,
>>>
>>> Andrea
>>>
>>>
>>> Printing cell data
>>> vtkIdTypeArray (000002C3420E7BE0)
>>> Debug: Off
>>> Modified Time: 54
>>> Reference Count: 1
>>> Registered Events: (none)
>>> Name: (none)
>>> Data type: idtype
>>> Size: 5
>>> MaxId: 4
>>> NumberOfComponents: 5
>>> Information: 0000000000000000
>>> Name: (none)
>>> Number Of Components: 5
>>> Number Of Tuples: 1
>>> Size: 5
>>> MaxId: 4
>>> LookupTable: (none)
>>> Array: 000002C342B0EA50
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 10/28/2016 4:39 PM, Andrea Borsic wrote:
>>>> Hi Elvis,
>>>>
>>>> Thanks for testing this. Actually I started out on Ubuntu with your
>>>> Jumbo
>>>> VTK package, and is it was throwing this error, I switched to
>>>> compiling from
>>>> source - with the same result.
>>>>
>>>> Cheers,
>>>>
>>>> Andrea
>>>>
>>>>
>>>>
>>>>> I tested your example with the 7.1.0.rc1 build we use at work (also
>>>>> Ubuntu 16.04), and I also get an X error, though a slightly different
>>>>> one:
>>>>>
>>>>> X Error of failed request: BadMatch (invalid parameter attributes)
>>>>> Major opcode of failed request: 154 (GLX)
>>>>> Minor opcode of failed request: 11 (X_GLXSwapBuffers)
>>>>> Serial number of failed request: 2141
>>>>> Current serial number in output stream: 2143
>>>>>
>>>>> I can confirm that commenting the interactor initialization/start, it
>>>>> terminates OK.
>>>>>
>>>>> Haven't looked closer at what's happening, but just thought I should
>>>>> share.
>>>>>
>>>>> For brevity, these are the flags we use when configuring our build:
>>>>>
>>>>> -DCMAKE_INSTALL_PREFIX=/opt/VTK7 \
>>>>> -DVTK_Group_Qt=ON \
>>>>> -DVTK_QT_VERSION=5 \
>>>>> -DVTK_Group_Imaging=ON \
>>>>> -DVTK_Group_Views=ON \
>>>>> -DModule_vtkRenderingFreeTypeFontConfig=ON \
>>>>> -DVTK_WRAP_PYTHON=ON \
>>>>> -DVTK_PYTHON_VERSION=3 \
>>>>> -DPYTHON_EXECUTABLE=/usr/bin/python3 \
>>>>> -DPYTHON_INCLUDE_DIR=/usr/include/python3.5 \
>>>>> -DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython3.5m.so \
>>>>> -DBUILD_TESTING=OFF \
>>>>> -DVTK_USE_SYSTEM_LIBRARIES=ON \
>>>>> -DVTK_USE_SYSTEM_LIBPROJ4=OFF \
>>>>> -DVTK_USE_SYSTEM_GL2PS=OFF \
>>>>> -DCMAKE_BUILD_TYPE=Release
>>>>>
>>>>> Elvis
>>>>>
>>>>>> Best Regards,
>>>>>>
>>>>>> Andrea
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 27/10/2016 23:25, Ken Martin wrote:
>>>>>>
>>>>>> Hmm, well that means VTK's rendering engine is initializing OK and
>>>>>> running.
>>>>>> So it could be something specific to the python app. If you run
>>>>>> some of
>>>>>> the
>>>>>> python tests do they work? ala
>>>>>>
>>>>>> ctest -R Python -I ,,23
>>>>>>
>>>>>> thats runs 1/23rd of the python tests
>>>>>>
>>>>>> if those all pass then it must be something specific to your script
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 27, 2016 at 5:16 PM, Andrea Borsic
>>>>>> <aborsic at ne-scientific.com>
>>>>>> wrote:
>>>>>>> Hi Ken,
>>>>>>>
>>>>>>> The test seems to run fine, I am attaching below the output.
>>>>>>>
>>>>>>> Best Regards,
>>>>>>>
>>>>>>> Andrea
>>>>>>>
>>>>>>>
>>>>>>> -----------------------
>>>>>>>
>>>>>>> andrea at i7-Desktop:/opt/VTK-7.1.0.rc1-bin$ sudo ctest -R VBOPLY -VV
>>>>>>> UpdateCTestConfiguration from
>>>>>>> :/opt/VTK-7.1.0.rc1-bin/DartConfiguration.tcl
>>>>>>> Parse Config file:/opt/VTK-7.1.0.rc1-bin/DartConfiguration.tcl
>>>>>>> Add coverage exclude regular expressions.
>>>>>>> Add coverage exclude: vtk.*TCLInit.cxx
>>>>>>> Add coverage exclude: vtk[^\.]+(Java|Python|Tcl).cxx
>>>>>>> Add coverage exclude: .*vtkOpenGLState.*
>>>>>>> Add coverage exclude: .*Testing.Cxx.*cxx
>>>>>>> Add coverage exclude: .*Testing.Cxx.*h
>>>>>>> Add coverage exclude: .*moc_.*cxx
>>>>>>> Add coverage exclude: .*/Rendering/OpenGL/vtkgl.*
>>>>>>> Add coverage exclude: .*/Utilities/.*
>>>>>>> Add coverage exclude: .*/ThirdParty/.*
>>>>>>> Add coverage exclude: .*vtkOpenGLPolyDataMapper.*
>>>>>>> SetCTestConfiguration:CMakeCommand:/usr/bin/cmake
>>>>>>> UpdateCTestConfiguration from
>>>>>>> :/opt/VTK-7.1.0.rc1-bin/DartConfiguration.tcl
>>>>>>> Parse Config file:/opt/VTK-7.1.0.rc1-bin/DartConfiguration.tcl
>>>>>>> Test project /opt/VTK-7.1.0.rc1-bin
>>>>>>> Constructing a list of tests
>>>>>>> Done constructing a list of tests
>>>>>>> Checking test dependency graph...
>>>>>>> Checking test dependency graph end
>>>>>>> test 1551
>>>>>>> Start 1551: vtkRenderingOpenGL2Cxx-TestVBOPLYMapper
>>>>>>>
>>>>>>> 1551: Test command:
>>>>>>> /opt/VTK-7.1.0.rc1-bin/bin/vtkRenderingOpenGL2CxxTests
>>>>>>> "TestVBOPLYMapper" "-D"
>>>>>>> "/opt/VTK-7.1.0.rc1-bin/ExternalData//Testing"
>>>>>>> "-T"
>>>>>>> "/opt/VTK-7.1.0.rc1-bin/Testing/Temporary" "-V"
>>>>>>>
>>>>>>> "/opt/VTK-7.1.0.rc1-bin/ExternalData/Rendering/OpenGL2/Testing/Data/Baseline/TestVBOPLYMapper.png"
>>>>>>>
>>>>>>> 1551: Test timeout computed to be: 3600
>>>>>>> 1551: first render time: 0.132993
>>>>>>> 1551: opengl version 4.5
>>>>>>> 1551: interactive render time: 0.0166377
>>>>>>> 1551: number of triangles: 871414
>>>>>>> 1551: triangles per second: 5.2376e+07
>>>>>>> 1551: <DartMeasurement name="ImageError"
>>>>>>> type="numeric/double">0</DartMeasurement><DartMeasurement
>>>>>>> name="BaselineImage"
>>>>>>> type="text/string">Standard</DartMeasurement><DartMeasurement
>>>>>>> name="WallTime" type="numeric/double">0.059715</DartMeasurement>
>>>>>>> 1551: <DartMeasurement name="CPUTime"
>>>>>>> type="numeric/double">0.037073</DartMeasurement>
>>>>>>> 1/1 Test #1551: vtkRenderingOpenGL2Cxx-TestVBOPLYMapper ...
>>>>>>> Passed
>>>>>>> 0.91 sec
>>>>>>>
>>>>>>> The following tests passed:
>>>>>>> vtkRenderingOpenGL2Cxx-TestVBOPLYMapper
>>>>>>>
>>>>>>> 100% tests passed, 0 tests failed out of 1
>>>>>>>
>>>>>>> Label Time Summary:
>>>>>>> vtkRenderingOpenGL2 = 0.91 sec (1 test)
>>>>>>>
>>>>>>> Total Test time (real) = 0.97 sec
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 27/10/2016 18:56, Ken Martin wrote:
>>>>>>>
>>>>>>> Can you try running ctest -R VBOPLY -VV and let us know the output?
>>>>>>>
>>>>>>> On Thu, Oct 27, 2016 at 12:46 PM, Andrea Borsic
>>>>>>> <aborsic at ne-scientific.com> wrote:
>>>>>>>> Dear All,
>>>>>>>>
>>>>>>>> I have successfully compiled VTK 7.0.0 under Ubuntu 16.04.1
>>>>>>>> LTS on a
>>>>>>>> computer with the following hw configuration:
>>>>>>>>
>>>>>>>> Processor: Intel Core i7
>>>>>>>>
>>>>>>>> GPU: NVIDIA GTX Titan Black
>>>>>>>>
>>>>>>>> ---
>>>>>>>>
>>>>>>>> VTK has been configured for:
>>>>>>>>
>>>>>>>> OpenGL 2 back-end
>>>>>>>>
>>>>>>>> Use Qt 5.7
>>>>>>>>
>>>>>>>> Use OpenMP for SMP
>>>>>>>>
>>>>>>>> Wrap Python 3 (ver 3.5.2 on the system)
>>>>>>>>
>>>>>>>> ---
>>>>>>>>
>>>>>>>> A simple python script which displays an unstructured grid and
>>>>>>>> which
>>>>>>>> works fine under Windows, opens (under Ubuntu) a rendering
>>>>>>>> window and
>>>>>>>> crashes with the message below:
>>>>>>>>
>>>>>>>> X Error of failed request: GLXBadDrawable
>>>>>>>> Major opcode of failed request: 154 (GLX)
>>>>>>>> Minor opcode of failed request: 11 (X_GLXSwapBuffers)
>>>>>>>> Serial number of failed request: 111
>>>>>>>> Current serial number in output stream: 111
>>>>>>>>
>>>>>>>>
>>>>>>>> Do you have any hint about this? Should I try the RC 7.1 or
>>>>>>>> switch to
>>>>>>>> the
>>>>>>>> plain OpenGL back-end ?
>>>>>>>>
>>>>>>>> Thanks in advance for any suggestion,
>>>>>>>>
>>>>>>>> Best Regards,
>>>>>>>>
>>>>>>>> Andrea
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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 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
>>>>>>
>>>> _______________________________________________
>>>> 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 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
>>>
>>>
>>> _______________________________________________
>>> 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 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
>>>
>>
>>
>
> _______________________________________________
> 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 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 --------------
import numpy as np
import time
import vtk
from vtk.util import numpy_support as vtk_np
# manually generate a single tetrahedra using numpy and then convert it to a vtkUstructuredMesh
pts_data_np = np.zeros((4,3),dtype=np.float32)
pts_data_np[0,:] = (0,0,0)
pts_data_np[1,:] = (0,0,1)
pts_data_np[2,:] = (0,1,0)
pts_data_np[3,:] = (1,0,0)
# convert the above numpy points into a vtkPoints object
pts = vtk.vtkPoints()
pts_data_vtk = vtk_np.numpy_to_vtk(pts_data_np, deep=True)
pts.SetData(pts_data_vtk)
# create a single tetrahedral cell using the points defined above
cell_data_np = np.zeros((1,5),dtype=np.int64)
cell_data_np[0,:] = (4,0,1,2,3) # this means this cell is formed by 4 nodes, and the nodes are [0,1,2,3]
# from now a vtkCellArray from the numpy cell_data
cell_data_vtk = vtk_np.numpy_to_vtkIdTypeArray(cell_data_np, deep=True)
cells = vtk.vtkCellArray()
cells.SetCells(1, cell_data_vtk)
# create an vtkUnstructuredGrid from the vtkPoints and vtkCellArray
dataset = vtk.vtkUnstructuredGrid()
dataset.SetPoints(pts)
dataset.SetCells(vtk.VTK_TETRA, cells)
# display now the dataset
# use a mapper
mapper = vtk.vtkDataSetMapper()
mapper.SetInputData(dataset)
# actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetRepresentationToWireframe()
# renderer
ren = vtk.vtkRenderer()
ren.AddActor(actor)
# render window
renWin = vtk.vtkRenderWindow() # save ref, so that we can start an interactor at a later time
renWin.AddRenderer(ren)
renWin.SetSize(600,600)
renWin.SetPosition(600,250)
renWin.Render()
# setup the interactor
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(renWin)
# DISPLAY THE DATASET FOR 2sec BEFORE STARTING THE INTERACTOR (WHICH WILL CRASH THE SCRIPT)
time.sleep(2)
####################### NOTE ###############################
# IF BOTH NEXT LINES ARE COMMENTED THE SCRIPT WILL NOT CRASH
interactor.Initialize()
interactor.Start()
print("Terminated OK")
More information about the vtkusers
mailing list