[vtk-developers] Offscreen rendering OpenGL, linux, leaks memory

Dan Lipsa dan.lipsa at kitware.com
Thu Jun 9 16:24:18 EDT 2016


I did not have --show-leak-kinds=all. This is the new result:

==492== HEAP SUMMARY:
==492==     in use at exit: 113 bytes in 3 blocks
==492==   total heap usage: 28,104 allocs, 28,101 frees, 18,108,567 bytes
allocated
==492==
==492== 24 bytes in 1 blocks are still reachable in loss record 1 of 3
==492==    at 0x4C2C857: malloc (vg_replace_malloc.c:291)
==492==    by 0xE42680D: XextCreateExtension (in
/usr/lib/x86_64-linux-gnu/libXext.so.6.4.0)
==492==    by 0x8AEBF37: ??? (in /usr/lib/nvidia-304/libGL.so.304.131)
==492==    by 0x105A05DF: ???
==492==
==492== 32 bytes in 1 blocks are still reachable in loss record 2 of 3
==492==    at 0x4C2AAE8: calloc (vg_replace_malloc.c:618)
==492==    by 0xE62D68F: _dlerror_run (dlerror.c:141)
==492==    by 0xE62D197: dlsym (dlsym.c:70)
==492==    by 0x8B1410D: ??? (in /usr/lib/nvidia-304/libGL.so.304.131)
==492==    by 0x8D4471F: ??? (in /usr/lib/nvidia-304/libGL.so.304.131)
==492==    by 0x8D7561F: ???
==492==    by 0x8B2AAF4: ??? (in /usr/lib/nvidia-304/libGL.so.304.131)
==492==
==492== 57 bytes in 1 blocks are still reachable in loss record 3 of 3
==492==    at 0x4C2C857: malloc (vg_replace_malloc.c:291)
==492==    by 0x8B1134C: ??? (in /usr/lib/nvidia-304/libGL.so.304.131)
==492==    by 0x61642F656D6F682E: ???
==492==    by 0x732F617370696C6D: ???
==492==    by 0x61646376752F6371: ???
==492==    by 0x6C706D6178652D73: ???
==492==    by 0x2F6B61656C2F7364: ???
==492==    by 0x74762F646C697561: ???
==492==    by 0x79726F6D656D2D6A: ???
==492==
==492== LEAK SUMMARY:
==492==    definitely lost: 0 bytes in 0 blocks
==492==    indirectly lost: 0 bytes in 0 blocks
==492==      possibly lost: 0 bytes in 0 blocks
==492==    still reachable: 113 bytes in 3 blocks
==492==         suppressed: 0 bytes in 0 blocks
==492==
==492== For counts of detected and suppressed errors, rerun with: -v
==492== Use --track-origins=yes to see where uninitialised values come from
==492== ERROR SUMMARY: 292 errors from 5 contexts (suppressed: 0 from 0)


On Thu, Jun 9, 2016 at 3:46 PM, Aashish Chaudhary <
aashish.chaudhary at kitware.com> wrote:

> Did you run with this option? (See the message below)
>
>  To see them, rerun with: --leak-check=full --show-leak-kinds=all
>
> On Thu, Jun 9, 2016 at 2:45 PM, Dan Lipsa <dan.lipsa at kitware.com> wrote:
>
>> I did run it, it does not report anything. This is the report for 10
>> iterations. It was similar for 10000.
>> Maybe the memory is allocated by the driver and not caught by valgrind.
>>
>> =24195== HEAP SUMMARY:
>> ==24195==     in use at exit: 113 bytes in 3 blocks
>> ==24195==   total heap usage: 28,105 allocs, 28,102 frees, 18,108,607
>> bytes allocated
>> ==24195==
>> ==24195== LEAK SUMMARY:
>> ==24195==    definitely lost: 0 bytes in 0 blocks
>> ==24195==    indirectly lost: 0 bytes in 0 blocks
>> ==24195==      possibly lost: 0 bytes in 0 blocks
>> ==24195==    still reachable: 113 bytes in 3 blocks
>> ==24195==         suppressed: 0 bytes in 0 blocks
>> ==24195== Reachable blocks (those to which a pointer was found) are not
>> shown.
>> ==24195== To see them, rerun with: --leak-check=full --show-leak-kinds=all
>> ==24195==
>> ==24195== For counts of detected and suppressed errors, rerun with: -v
>> ==24195== Use --track-origins=yes to see where uninitialised values come
>> from
>> ==24195== ERROR SUMMARY: 292 errors from 5 contexts (suppressed: 0 from 0)
>>
>>
>> On Thu, Jun 9, 2016 at 2:24 PM, Bill Lorensen <bill.lorensen at gmail.com>
>> wrote:
>>
>>> If you are on linux, can you run valgrind on this?
>>>
>>> Bill
>>>
>>> On Thu, Jun 9, 2016 at 1:37 PM, Dan Lipsa <dan.lipsa at kitware.com> wrote:
>>> > Hi all,
>>> > Does anybody have seen or has advice on fixing the following bug.
>>> > Thank you.
>>> >
>>> > http://www.vtk.org/Bug/view.php?id=16744
>>> >
>>> > I paste here a portion of the test I am using. The whole test is in
>>> mantis.
>>> >
>>> > 10000 iterations of Render leak about 20MB according the reports from
>>> the
>>> > OS. The render window is kept around and the renderer and all other
>>> objects
>>> > are deleted and and re-added at each iteration.
>>> >
>>> > The same program does not leak for onscreen OpenGL or
>>> offscreen/onscreen
>>> > OpenGL2.
>>> >
>>> >
>>> >
>>> > void iteration(int i, vtkRenderWindow* renderWindow)
>>> > {
>>> >   vtkSmartPointer<vtkCylinderSource> cylinder =
>>> >     vtkSmartPointer<vtkCylinderSource>::New();
>>> >   cylinder->SetResolution(8);
>>> >
>>> >   vtkSmartPointer<vtkPolyDataMapper> cylinderMapper =
>>> >     vtkSmartPointer<vtkPolyDataMapper>::New();
>>> >   cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
>>> >
>>> >   vtkSmartPointer<vtkActor> cylinderActor =
>>> >     vtkSmartPointer<vtkActor>::New();
>>> >   cylinderActor->SetMapper(cylinderMapper);
>>> >   cylinderActor->GetProperty()->SetColor(1.0000, 0.3882, 0.2784);
>>> >   cylinderActor->RotateX(30.0);
>>> >   cylinderActor->RotateY(-45.0);
>>> >
>>> >   vtkSmartPointer<vtkRenderer> renderer =
>>> >     vtkSmartPointer<vtkRenderer>::New();
>>> >   renderer->AddActor(cylinderActor);
>>> >   renderer->SetBackground(0.1, 0.2, 0.4);
>>> >   // Zoom in a little by accessing the camera and invoking its "Zoom"
>>> > method.
>>> >   renderer->ResetCamera();
>>> >
>>> >   renderWindow->AddRenderer(renderer);
>>> >   renderWindow->Render();
>>> >   renderWindow->RemoveRenderer(renderer);
>>> > }
>>> >
>>> > int main()
>>> > {
>>> >   vtkSmartPointer<vtkRenderWindow> renderWindow =
>>> >     vtkSmartPointer<vtkRenderWindow>::New();
>>> >   renderWindow->SetSize(200, 200);
>>> >   //renderWindow->OffScreenRenderingOn();
>>> >   for (int i = 0; i < 10000; ++i)
>>> >     {
>>> >     iteration(i, renderWindow);
>>> >     if (i % 10 == 0)
>>> >       {
>>> >       std::cout << i << " ==== Iteration ====" << std::endl;
>>> >       os_memory_usage();
>>> >       }
>>> >     }
>>> >   return 0;
>>> > }
>>> >
>>> >
>>> > _______________________________________________
>>> > Powered by www.kitware.com
>>> >
>>> > Visit other Kitware open-source projects at
>>> > http://www.kitware.com/opensource/opensource.html
>>> >
>>> > Search the list archives at:
>>> http://markmail.org/search/?q=vtk-developers
>>> >
>>> > Follow this link to subscribe/unsubscribe:
>>> > http://public.kitware.com/mailman/listinfo/vtk-developers
>>> >
>>> >
>>>
>>>
>>>
>>> --
>>> Unpaid intern in BillsBasement at noware dot com
>>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/vtk-developers
>>
>>
>>
>
>
> --
>
>
>
> *| Aashish Chaudhary | Technical Leader         | Kitware Inc.            *
> *| http://www.kitware.com/company/team/chaudhary.html
> <http://www.kitware.com/company/team/chaudhary.html>*
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20160609/ecae121c/attachment.html>


More information about the vtk-developers mailing list