Page 1 of 1

New OpenGL Crash

Posted: Sun Nov 11, 2012 8:15 pm
by 16561419
Hello,

with the latest version 2012.07.121105 one OpenGL crash was solved that always showed up
when activating OpenGL for the first time:

"ActivateContext (....VCLTee.TeeGLCanvas.pas, line 1459)."
See also: [TA05016396]

But unfortunately a new one was introduced. Whenever more than one OpenGL chart (on different forms) was active and
I close the application I get the following crash:

Type : EAssertionFailed
Message : wglMakeCurrent (VCLTee.OpenGL2.pas, line 4200).

This is the stack trace:

----------------------------------------------------------------------------------------------------------------
|Address |Module |Unit |Class |Procedure/Method |Line |
----------------------------------------------------------------------------------------------------------------
|*Exception Thread: ID=2952; Priority=0; Class=; [Main] |
|--------------------------------------------------------------------------------------------------------------|
|016468C1|xxx..exe|VCLTee.OpenGL2.pas | |DeactivateRenderingContext|4200[1] |
|0040A121|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|0040A0FC|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|016468C1|xxx..exe|VCLTee.OpenGL2.pas | |DeactivateRenderingContext|4200[1] |
|016468A4|xxx..exe|VCLTee.OpenGL2.pas | |DeactivateRenderingContext|4200[1] |
|016493CA|xxx..exe|VCLTee.TeeGLCanvas.pas|TGLCanvas |DestroyGLContext |532[7] |
|016493B0|xxx..exe|VCLTee.TeeGLCanvas.pas|TGLCanvas |DestroyGLContext |525[0] |
|01649405|xxx..exe|VCLTee.TeeGLCanvas.pas|TGLCanvas |Destroy |545[4] |
|004084A8|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|004084A0|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|014514FA|xxx..exe|VCLTee.TeeProcs.pas |TCustomTeePanel |Destroy |1689[2] |
|014514D8|xxx..exe|VCLTee.TeeProcs.pas |TCustomTeePanel |Destroy |1687[0] |
|0145390A|xxx..exe|VCLTee.TeeProcs.pas |TCustomTeePanelExtended|Destroy |3412[4] |
|014538D8|xxx..exe|VCLTee.TeeProcs.pas |TCustomTeePanelExtended|Destroy |3408[0] |
|01479145|xxx..exe|VCLTee.TeEngine.pas |TCustomAxisPanel |Destroy |12559[10]|
|014790BC|xxx..exe|VCLTee.TeEngine.pas |TCustomAxisPanel |Destroy |12549[0] |
|014873EF|xxx..exe|VCLTee.Chart.pas |TCustomChart |Destroy |2358[9] |
|0120A69C|xxx..exe|dxDockControl.pas |TdxCustomDockControl |Destroy |8564[16] |
|0120A5C8|xxx..exe|dxDockControl.pas |TdxCustomDockControl |Destroy |8548[0] |
|011E7242|xxx..exe|dxDockPanel.pas |TdxDockPanel |Destroy |233[4] |
|0120A69C|xxx..exe|dxDockControl.pas |TdxCustomDockControl |Destroy |8564[16] |
|0120A5C8|xxx..exe|dxDockControl.pas |TdxCustomDockControl |Destroy |8548[0] |
|011FDC93|xxx..exe|dxDockControl.pas |TdxDockSite |Destroy |2542[6] |
|00404D00|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|00408460|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|00408AFE|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|00408AFC|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|01C30862|xxx..exe|FMain.pas |TfrmMain |Destroy |1705[21] |
|0040A00D|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|00409FA8|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|01D159FD|xxx..exe|TwoDIntReader.pas | |Initialization |137[4] |
|--------------------------------------------------------------------------------------------------------------|
|Calling Thread: ID=2952; Priority=0; Class=; [Main] |
|--------------------------------------------------------------------------------------------------------------|
|00408B04|xxx..exe|OpenGLTokens.pas | | |7494[0] |
|00F3A327|xxx..exe|GLContext.pas |TServiceContextThread |Create |4811[17] |
|00F3A28C|xxx..exe|GLContext.pas |TServiceContextThread |Create |4794[0] |
|00F39B59|xxx..exe|GLContext.pas |TGLContextManager |CreateServiceContext |4539[4] |
|00F39B24|xxx..exe|GLContext.pas |TGLContextManager |CreateServiceContext |4535[0] |
|00F39A56|xxx..exe|GLContext.pas | |OnApplicationInitialize |4485[7] |
|01D15766|xxx..exe|xxxxxxxxxxxxx.dpr | | |693[6] |
----------------------------------------------------------------------------------------------------------------

Please help!

Best regards,

X-Ray

Re: New OpenGL Crash

Posted: Mon Nov 12, 2012 9:51 am
by 10050769
Hello X-Ray,

As explain in next thread the message only appears when graphic card isn't configure to support OpenGL. On the other hand, I try reproduce your problem, using last version of TeeChartVCL, OnepnGL active it in different forms and close application and the problem doesn't appear for me, therefore, the problems in OpenGL seems are solved.
For this reason, we are very grateful if you can made for us a simple project, because we can run as-is here your application and try to reproduce your problem and detect a new errors in OpenGL if this is the case.

Thanks,

Re: New OpenGL Crash

Posted: Mon Nov 12, 2012 11:20 am
by 16561419
Hello Sandra,

>the message only appears when graphic card isn't configure to support OpenGL.
No, I have a NVIDIA Quadro 1000M card which supports OpenGL very well, that is not the problem.
Unfortunately it is not simple to produce a small example application that shows/reproduces the crash.
I will try again when I have a bit more time tomorrow.

But you have the stack trace that shows very well what happens during the crash and that should give a hint what is
going on.

best regards,

X-Ray

Re: New OpenGL Crash

Posted: Mon Nov 12, 2012 1:27 pm
by 16561419
Hello Sandra,

I had another look at this problem.
It is important to note that I always have the TChart sourcses in the search path for debugging purpose.
When you have that and you have more than one active OpenGL TChart in your project (this
is very easy to reproduce) then by terminating the application you will always trigger the
Assertion in procedure "DeactivateRenderingContext" of unit "VCLTee.OpenGL.pas":

//------------------------------------------------------------------------------
procedure DeactivateRenderingContext;
begin
Assert(wglMakeCurrent(0,0),'wglMakeCurrent');
end;

So either this Assertion is meaningless and should be removed or there is a real problem.
Can you tell me?

best regards,

X-Ray

Re: New OpenGL Crash

Posted: Tue Nov 13, 2012 9:29 am
by 10050769
Hello X-Ray.

Thanks for your information. I don't use the TeeChartVCL source code and for these reason I couldn't reproduce your problem. Now, I have reproduced it and we have already fixed it, for next maintenance release. At the moment, I suggest compile the source code disabling the assertions, for solve the problem and work as normal.

I hope will helps.

Thanks,