[osg-users] OpenSceneGraph-3.6.5 release candidate 2 tagged, please test

OpenSceneGraph Users osg-users at lists.openscenegraph.org
Tue Jan 28 14:39:48 PST 2020


Hello again.

The googlegroup has search options, here's what I get if I search for 
> OpenMW. it comes up with several threads with you contributing:
>
> https://groups.google.com/forum/#!searchin/osg-users/OpenMW%7Csort:date
>

I can find chunks of the right thread (this is some: 
https://groups.google.com/forum/#!searchin/osg-users/OpenMW|sort:date/osg-users/4lwB0MZdPqM/-ohFXtp-CQAJ) 
but some seems to be missing. For example, this newer chunk shows up as a 
separate thread: 
https://groups.google.com/forum/#!searchin/osg-users/anyoldname3|sort:date/osg-users/lbFxUItJ_qc/KEkYK_1dAgAJ. 
It's reasonably likely that that's the end of the thread.

I don't disappear completely, I just step back.
>

I'm aware of the reasoning and that it's not total. It still has a pretty 
big impact on how much OSG work you actually get done, so I feel my word 
choice isn't that extreme.

If you have things you feel would be suitable to merge with the 3.6 branch 
> please make them. I can't review and provide feedback.  To properly judge 
> changes I do need to understand the motivation behind them, it may be that 
> the changes are workaround issues that are based solved in other ways.
>

https://groups.google.com/d/msg/osg-users/lbFxUItJ_qc/c54xoN8oAAAJ has a 
diff that resolved my problem and I suggested went into 3.6. A few posts 
lower, there's what we both agreed was the source for a simple application 
that didn't work. You said you'd look into it in more detail later in the 
hope of finding other potential solutions. I can't do that for you. I put 
days into this and couldn't find any better solutions than the one I 
posted. That might have been because I didn't write OSG and am unaware of a 
nifty feature that will fix everything, because I'm not actually clever 
enough to conceive of the right approach, or because there's genuinely no 
other option. It's certainly not because I didn't do a thorough enough 
investigation.

When you say not seeing the crash, I we talking about a different issue to 
> what Fabian was referring to?  Is Fabian working on the same versions of 
> OpenME and OSG as yourself?
>

I was referring to the crash he was seeing with the profiler. It's still 
called *OpenMW* with one *O* and one *W*, by the way. My testing was with 
the 3.6 branch of OSG as of 9b41f260 and master branch OpenMW from a few 
weeks ago. I've also got minor local changes to adapt to the Julien 
Valentine occlusion query PR you merged recently. Nothing that touches 
anything relevant to Fabian's crash has been merged since then, so latest 
master branch OpenMW is a good analogue for what I'm using. I suspect 
Fabian isn't using the same OSG and OpenMW as me exactly, as he needs to 
either merge this https://github.com/OpenMW/openmw/pull/2676 (or something 
like it) or use an OSG revision from before this 
https://github.com/openscenegraph/OpenSceneGraph/pull/902 got merged.

The OSG falls back to using the DefaultFont when the requested font can't 
> be found, so any chance this might be happening?  Something like font files 
> missing, case of the font being different - Windows isn't case sensitive so 
> when you move to a case sensitive OS you can see issues if there are errors 
> in the filename.
>

I've checked, and we switched to using a bundled TTF font in the middle of 
2018. Most development happens on Linux (and the person who switched the 
font over uses it exclusively) so the only way it wouldn't be finding the 
font would be if Fabian's doing something weird.

My build is using static osg, static osg-plugins and link time optimization.
>

For example, this could be the weird thing. We don't test statically linked 
OSG, although our semi-official Android port does things that way (it's not 
maintained by the core team, just one guy on his own, and it's got plenty 
of shortcomings). One possibility is that the Freetype plugin just got left 
out when building. Renaming the DLL so OpenMW couldn't see it did make it 
use the OSG default font in the profiler, but didn't allow me to reproduce 
Fabian's crash.



In summary:

   - Fabian has done something weird with either OSG or OpenMW that hasn't 
   been specified yet.
   - It's beginning to feel like you're misspelling OpenMW deliberately.
   - Regarding the as-yet unresolved default font/object cache not being 
   released issue I reported in March, the ball was left in your court with 
   nothing more I could do. Hopefully enough has been linked above that we can 
   move forward with that again if you've got more time now.
   - Without knowing what source code Fabian has built, I can't reproduce 
   or identify the issue he's seeing.

Cheers,

Chris





On Tuesday, 28 January 2020 11:51:31 UTC, OpenSceneGraph Users wrote:
>
> Hi Fabian & Chris,
>
> I was curious about the clean up of the global getGlobalReferencedMutex() 
> so I added some debug messages to OpenThreads and to relevant calls in the 
> OSG to track the creation and clean up of mutexes.  I tried an alternative 
> means of static initialization of the static getGlobalReferencedMutex() and 
> got the same behavior for before and after results so I don't think the 
> version in the 3.6 branch is likley to be be a source of problem, even if 
> it's not particular clean.  Below is diff of the changes I made.
>
> Robert
>
> $ git diff
> diff --git a/src/OpenThreads/pthreads/PThreadMutex.cpp 
> b/src/OpenThreads/pthreads/PThreadMutex.cpp
> index 3a3d1c338..d122fc67c 100644
> --- a/src/OpenThreads/pthreads/PThreadMutex.cpp
> +++ b/src/OpenThreads/pthreads/PThreadMutex.cpp
> @@ -22,6 +22,8 @@
>  #include <OpenThreads/Mutex>
>  #include "PThreadMutexPrivateData.h"
>  
> +#include <stdio.h>
> +
>  using namespace OpenThreads;
>  
>
>  //----------------------------------------------------------------------------
> @@ -33,7 +35,7 @@ using namespace OpenThreads;
>  Mutex::Mutex(MutexType type):
>      _mutexType(type)
>  {
> -
> +    printf("Mutex::Mutex(%d) %p\n", type, this);
>      pthread_mutexattr_t mutex_attr;
>      pthread_mutexattr_init( &mutex_attr );
>      
> @@ -107,6 +109,8 @@ Mutex::Mutex(MutexType type):
>  //
>  Mutex::~Mutex() {
>  
> +    printf("Mutex::~Mutex() %p\n", this);
> +
>      PThreadMutexPrivateData *pd =
>          static_cast<PThreadMutexPrivateData*>(_prvData);
>  
> diff --git a/src/osg/Referenced.cpp b/src/osg/Referenced.cpp
> index 95b665c57..267bda310 100644
> --- a/src/osg/Referenced.cpp
> +++ b/src/osg/Referenced.cpp
> @@ -79,11 +79,16 @@ struct ResetPointer
>  };
>  
>  typedef ResetPointer<DeleteHandler> DeleteHandlerPointer;
> +
> +#if 1
> +#include <stdio.h>
> +
>  typedef ResetPointer<OpenThreads::Mutex> GlobalMutexPointer;
>  
>  OpenThreads::Mutex* Referenced::getGlobalReferencedMutex()
>  {
>      static GlobalMutexPointer s_ReferencedGlobalMutext = new 
> OpenThreads::Mutex;
> +    printf("Referenced::getGlobalReferencedMutex() %p\n", 
> (s_ReferencedGlobalMutext.get()));
>      return s_ReferencedGlobalMutext.get();
>  }
>  
> @@ -96,6 +101,17 @@ struct InitGlobalMutexes
>      }
>  };
>  static InitGlobalMutexes s_initGlobalMutexes;
> +#else
> +
> +#include <stdio.h>
> +
> +static OpenThreads::Mutex s_ReferencedGlobalMutex;
> +OpenThreads::Mutex* Referenced::getGlobalReferencedMutex()
> +{
> +    printf("Referenced::getGlobalReferencedMutex() %p\n", 
> (&s_ReferencedGlobalMutex));
> +    return &s_ReferencedGlobalMutex;
> +}
> +#endif
>  
>  // static std::auto_ptr<DeleteHandler> s_deleteHandler(0);
>  static DeleteHandlerPointer s_deleteHandler(0);
> diff --git a/src/osg/StateAttribute.cpp b/src/osg/StateAttribute.cpp
> index e239fb3aa..c7df40894 100644
> --- a/src/osg/StateAttribute.cpp
> +++ b/src/osg/StateAttribute.cpp
> @@ -39,6 +39,8 @@ void StateAttribute::removeParent(osg::StateSet* object)
>  
>      ParentList::iterator pitr = 
> std::find(_parents.begin(),_parents.end(),object);
>      if (pitr!=_parents.end()) _parents.erase(pitr);
> +
> +    printf("StateAttribute::removeParent()\n");
>  }
>  
>  
>
>
>

-- 
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osg-users+unsubscribe at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/5170457d-c81d-4a7b-8ad2-27f8cface71c%40googlegroups.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20200128/e80d4424/attachment.html>


More information about the osg-users mailing list