New OpenGL Crash

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
X-Ray
Newbie
Newbie
Posts: 49
Joined: Fri Jan 27, 2012 12:00 am

New OpenGL Crash

Post by X-Ray » Sun Nov 11, 2012 8:15 pm

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

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: New OpenGL Crash

Post by Sandra » Mon Nov 12, 2012 9:51 am

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,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

X-Ray
Newbie
Newbie
Posts: 49
Joined: Fri Jan 27, 2012 12:00 am

Re: New OpenGL Crash

Post by X-Ray » Mon Nov 12, 2012 11:20 am

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

X-Ray
Newbie
Newbie
Posts: 49
Joined: Fri Jan 27, 2012 12:00 am

Re: New OpenGL Crash

Post by X-Ray » Mon Nov 12, 2012 1:27 pm

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

Sandra
Site Admin
Site Admin
Posts: 3132
Joined: Fri Nov 07, 2008 12:00 am

Re: New OpenGL Crash

Post by Sandra » Tue Nov 13, 2012 9:29 am

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,
Best Regards,
Sandra Pazos / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Post Reply