Hi Robert,
You latest fixes to texture and buffer objects fixed the crash I was
experiencing in this code. Thanks!
However, starting at the second time the child window is opened (third
time you press 'a'), I get these messages every frame, and the particle
systems do not render correctly anymore:
Warning: detected OpenGL error 'invalid value' at after RenderBin::draw(..)
This happens on both Windows and Linux (Ubuntu Jaunty x64) So I think
there's still something lurking. Could you check it out please? See the
code posted in my previous message. It seems that this issue is close to
being put to rest...
Thanks in advance,
J-S
Jean-Sébastien Guay wrote:
Hi all,
So I just wanted to post my latest code that can reproduce this issue,
and see if I can get Robert's attention so he can check it out. It may
be related to the crashes others are seeing with texture pools and/or
VBOs lately, but it might not. It's also triggered by starting/stopping
viewers, but it's reproducible in OSG 2.6 so it's probably not related
to the latest texture pool code (unless a bug has carried over from
before).
The code attached can be changed using #defines at the top of the
osgviewer.cpp file to demonstrate the problem and two possible workarounds.
First, you can make the program use either
osgParticle::PrecipitationEffect or the SiltEffect that's present it
osgOcean. Both will reproduce the problem and will react the same to the
workarounds (which makes sense since the SiltEffect is a modified
PrecepitationEffect to begin with). Change between the two by changing
the #define USE_EFFECT to either SILT or PRECIPITATION.
Then, if you comment both the defines that follow (that start with
WORKAROUND_) you should be able to reproduce the bug. Run the program
with those two defines commented, and when the window comes up, press
'a'. You'll get a new window. Press 'a' again and the window will close.
Repeat this. On both Linux and Windows, after 2-3 times, the window
becomes gray (partially or completely) and I get
Warning: detected OpenGL error 'invalid value' at After Renderer::compile
Additionally, under Windows, after a few more opens/closes, the app
crashes. On Linux it seems to crash much less often, sometimes it does,
but most of the time I just get the gray window.
Now, you can test out the two workarounds by uncommenting one of the two
WORKAROUND_* defines. The first one is to share contexts, and the second
is to not reuse context IDs (by incrementing the context ID usage count
so that a new one is used each time). We're currently using the latter
workaround in our app, and it works well, but of course it would be
better if OSG could clean up after itself correctly when a context is
destroyed and then the context ID reuse would work as intended.
So, I hope this example code helps reproduce and squash another bug...
Let me know if there's more I can do to help. Thanks,
J-S
--
______________________________________________________
Jean-Sebastien Guay jean-sebastien.g...@cm-labs.com
http://www.cm-labs.com/
http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org