Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

hil23Ak
I have an application that can have an arbitrary number of NewtCanvasAWT's, each with an associated Animator thread and GLWindow context. These contexts are all shared with a permanent "master" context that is created as a dummy GLAutoDrawable from createDummyAutoDrawable().

Sidenote: I do not currently use setExclusiveContext() with the Animator threads because occasionally a draw will be invoked through the Swing EDT.

This system works very well in 2.3.2 even with many contexts. However, in 2.4.0 I am getting massive hangs when the library tries to make context current. Here is a sample call stack from where 80% of the application time is spent in wglMakeCurrent():



Did something change in 2.4.0 in how contexts are managed? Using setExclusiveContext() helps significantly but still does not reach 2.3.2 performance (while also removing rendering flexibility).
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

gouessej
Administrator
Hello

Please provide a SSCCE or reproduce your problem on one of our test cases. We can't fix a bug that we can't reproduce. You provide no information about your hardware, I just guess you're under Windows.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

hil23Ak
Yes, windows.

I think an existing test case will show this. com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextListNEWT2 is a likely target. It will take me a bit to get the JOGL build system set up. I am working on it.
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

gouessej
Administrator
It's not accurate enough, please provide this kind of information:
https://jogamp.org/wiki/index.php?title=Jogl_FAQ#Bugreports_.26_Testing

By the way, I don't reproduce this problem on my machines. If you use a laptop with Optimus or something similar, please ensure that the same GPU is used during your tests.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

hil23Ak
I have worked on the issue and can demonstrate a reproducible test case to file a formal bug report with. What is the procedure for getting an account to the jogamp bugzilla system?
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

gouessej
Administrator
Send me an email, I'll create a bugzilla account for you.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

hil23Ak
Thanks. Email sent.
Reply | Threaded
Open this post in threaded view
|

Re: Major performance regression in context makeCurrent() from 2.3.2 to 2.4.0

gouessej
Administrator