[vtkusers] vtkOpenGLClearErrorMacro() never returns

Bill Lorensen bill.lorensen at gmail.com
Tue Apr 15 11:35:01 EDT 2014


Here is a patch; http://review.source.kitware.com/#/c/15149/

Bill



On Tue, Apr 15, 2014 at 11:31 AM, Bill Lorensen <bill.lorensen at gmail.com>wrote:

> I see 16 is already used as a limit in some other calls, so I'll make that
> the default.
>
>
>
> On Tue, Apr 15, 2014 at 11:07 AM, Aashish Chaudhary <
> aashish.chaudhary at kitware.com> wrote:
>
>> IMO, a number of 10 should be reasonable. glGetError call is an
>> expensive call and if that's happening at the exit, that may be Ok but not
>> while the application is active.
>>
>> Also, typically you run into 2-3 error codes (at least my experience). It
>> would be nice if this could be an option that you can pass to the macro.
>>
>> Just my thoughts.
>>
>> -Aashish
>>
>>
>>
>>  On Tue, Apr 15, 2014 at 10:57 AM, Bill Lorensen <bill.lorensen at gmail.com
>> > wrote:
>>
>>> Hmmm. I can put a limit on the number of times the while loops execute,
>>> but I'm not sure what that limit should be. There are many possible gl
>>> errors (and glu errors)
>>>
>>>
>>>
>>> On Tue, Apr 15, 2014 at 8:59 AM, Marco Sambin <m.sambin at gmail.com>wrote:
>>>
>>>> Great Bill,
>>>>
>>>> thanks for your comments and thank you in advance for the patch.
>>>> Best regards,
>>>>
>>>> Marco
>>>>  Il 15/apr/2014 14:42 "Bill Lorensen" <bill.lorensen at gmail.com> ha
>>>> scritto:
>>>>
>>>>  It seems risky to have glGetError in a while loop without a guard to
>>>>> stop the loop. According to the open GL Super Bible, the safe way to clear
>>>>> the error is:
>>>>> GLenum glError;
>>>>> unsigned int i = 0;
>>>>>   do
>>>>>     {
>>>>>     glError = glGetError();
>>>>>     ++i;
>>>>>     }
>>>>>   while(i < 6 && glError != GL_NO_ERROR);
>>>>>
>>>>> I have see some docs that say there can be more  error codes.
>>>>> Certainly, some upper bound should be set.
>>>>>
>>>>> I'll prepare a patch.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Apr 15, 2014 at 5:58 AM, Richard Whitehead <
>>>>> richard.whitehead at vivosight.com> wrote:
>>>>>
>>>>>> Marco,
>>>>>> Thanks for the support!  I only get it on one of my computers, where
>>>>>> OpenGL is issuing warnings, but then the purpose of this code is to clear
>>>>>> warnings...  It simply doesn't work.  Hopefully someone who knows what it's
>>>>>> doing could fix it.
>>>>>> Thanks again,
>>>>>> Richard
>>>>>>
>>>>>>
>>>>>> On 15 April 2014 10:49, Marco Sambin <m.sambin at gmail.com> wrote:
>>>>>>
>>>>>>> Hi Richard,
>>>>>>>
>>>>>>> quite a while ago, while I was making experiments with the use of
>>>>>>> JOGL with VTK under Windows, I encountered the same issue that you describe.
>>>>>>>
>>>>>>> Basically, in some cases my application got stuck, and the CPU usage
>>>>>>> went up to 25% (I have a quad core processor on my dev PC). I discovered
>>>>>>> this was due to a "vtkClearOpenGLErrors()" call in the rendering pipeline,
>>>>>>> which was iterating indefinitely in its "while" loop. Not sure what was the
>>>>>>> real cause of this, did not have the time to debug in detail. At that time,
>>>>>>> I worked around the problem by setting the VTK_REPORT_OPENGL_ERRORS option
>>>>>>> to "false" on CMake (which forces the implementation of
>>>>>>> vtkClearOpenGLErrors() to be empty). I understand that this may not be a
>>>>>>> viable workaround in your case, and I also believe it would be good to
>>>>>>> understand the real cause for this infinite loop inside
>>>>>>> vtkClearOpenGLErrors().
>>>>>>>
>>>>>>> But for now, I can only let you know that "you are not alone" ;-)
>>>>>>>
>>>>>>> Maybe someone else on the list can shed some more light or share
>>>>>>> some experience about this issue.
>>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>> Marco
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Apr 14, 2014 at 1:04 PM, Richard Whitehead <
>>>>>>> richard.whitehead at vivosight.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> This new macro was introduced in 6.1.0.  It is getting called when
>>>>>>>> my app exits and it sits in an infinite loop.
>>>>>>>> The documentation say is t is supposed to silently clear errors,
>>>>>>>> but it is not doing this.
>>>>>>>>
>>>>>>>> Please can anyone suggest how to fix it?  Since my app is closing I
>>>>>>>> am willing to discard errors, but the only method I can see that should
>>>>>>>> clear errors is, well, vtkOpenGLClearErrorMacro...
>>>>>>>>
>>>>>>>> Many thanks,
>>>>>>>>
>>>>>>>> Richard
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> Richard Whitehead *–* Senior Imaging Engineer
>>>>>>>>
>>>>>>>> *Michelson Diagnostics Ltd*
>>>>>>>>
>>>>>>>> *M:* +44 (0)7905 955276   *T:* +44 (0)20 8308 1695
>>>>>>>>
>>>>>>>> *E: *richard.whitehead at vivosight.com   *W:* www.vivosight.com
>>>>>>>>
>>>>>>>>
>>>>>>>> <http://www.vivosight.com/>
>>>>>>>>
>>>>>>>>
>>>>>>>> Michelson Diagnostics Ltd, 1 Grays Farm Production Village, Grays
>>>>>>>> Farm Road, Orpington, Kent  BR5 3BD, UK
>>>>>>>>
>>>>>>>> Registered Office: 3 Shearwater, Maidstone, ME16
>>>>>>>> 0DW.     Registered in England No. 5732681
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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
>>>>>>>>
>>>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Richard Whitehead *–* Senior Imaging Engineer
>>>>>>
>>>>>> *Michelson Diagnostics Ltd*
>>>>>>
>>>>>> *M:* +44 (0)7905 955276   *T:* +44 (0)20 8308 1695
>>>>>>
>>>>>> *E: *richard.whitehead at vivosight.com   *W:* www.vivosight.com
>>>>>>
>>>>>>
>>>>>> <http://www.vivosight.com/>
>>>>>>
>>>>>>
>>>>>> Michelson Diagnostics Ltd, 1 Grays Farm Production Village, Grays
>>>>>> Farm Road, Orpington, Kent  BR5 3BD, UK
>>>>>>
>>>>>> Registered Office: 3 Shearwater, Maidstone, ME16 0DW.     Registered
>>>>>> in England No. 5732681
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Unpaid intern in BillsBasement at noware dot com
>>>>>
>>>>
>>>
>>>
>>> --
>>> 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
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>
>>
>> --
>> | Aashish Chaudhary
>> | R&D Engineer
>> | Kitware Inc.
>> | www.kitware.com
>>
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
>



-- 
Unpaid intern in BillsBasement at noware dot com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20140415/876fcba6/attachment.html>


More information about the vtkusers mailing list