<div dir="ltr">Hello again.<div><br></div><div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>The googlegroup has search options, here's what I get if I search for OpenMW. it comes up with several threads with you contributing:<br></div><div><br></div><div><a href="https://groups.google.com/forum/#!searchin/osg-users/OpenMW%7Csort:date" target="_blank" rel="nofollow" style="cursor: pointer;">https://groups.google.com/<wbr>forum/#!searchin/osg-users/<wbr>OpenMW%7Csort:date</a></div></blockquote><div><br></div><div>I can find chunks of the right thread (this is some: <a href="https://groups.google.com/forum/#!searchin/osg-users/OpenMW|sort:date/osg-users/4lwB0MZdPqM/-ohFXtp-CQAJ">https://groups.google.com/forum/#!searchin/osg-users/OpenMW|sort:date/osg-users/4lwB0MZdPqM/-ohFXtp-CQAJ</a>) but some seems to be missing. For example, this newer chunk shows up as a separate thread: <a href="https://groups.google.com/forum/#!searchin/osg-users/anyoldname3|sort:date/osg-users/lbFxUItJ_qc/KEkYK_1dAgAJ">https://groups.google.com/forum/#!searchin/osg-users/anyoldname3|sort:date/osg-users/lbFxUItJ_qc/KEkYK_1dAgAJ</a>. It's reasonably likely that that's the end of the thread.</div><div><br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">I don't disappear completely, I just step back.<br></blockquote><div><br></div><div>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.</div><div><br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">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.<br></blockquote><div><br></div><div>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.<br></div><div><br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">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?<br></blockquote><div><br></div><div>I was referring to the crash he was seeing with the profiler. It's still called <i>OpenMW</i> with one <i>O</i> and one <i>W</i>, 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 <a href="https://github.com/OpenMW/openmw/pull/2676">https://github.com/OpenMW/openmw/pull/2676</a> (or something like it) or use an OSG revision from before this <a href="https://github.com/openscenegraph/OpenSceneGraph/pull/902">https://github.com/openscenegraph/OpenSceneGraph/pull/902</a> got merged.</div><div><br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">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.<br></blockquote><div><br></div><div>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.</div><div><br></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">My build is using static osg, static osg-plugins and link time optimization.<br></blockquote><div><br></div><div>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.</div><div><br></div><div><br></div><div><br></div><div>In summary:</div><div><ul><li>Fabian has done something weird with either OSG or OpenMW that hasn't been specified yet.</li><li>It's beginning to feel like you're misspelling OpenMW deliberately.</li><li>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.</li><li>Without knowing what source code Fabian has built, I can't reproduce or identify the issue he's seeing.</li></ul>Cheers,</div><div><br></div><div>Chris</div><div><br></div><div><br></div><div><br></div><div><br></div><br>On Tuesday, 28 January 2020 11:51:31 UTC, OpenSceneGraph Users  wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr"><div dir="ltr">Hi Fabian & Chris,<br></div><div><br></div><div>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.</div><div><br></div><div>Robert<br></div><div><br></div><div>$ git diff<br>diff --git a/src/OpenThreads/pthreads/<wbr>PThreadMutex.cpp b/src/OpenThreads/pthreads/<wbr>PThreadMutex.cpp<br>index 3a3d1c338..d122fc67c 100644<br>--- a/src/OpenThreads/pthreads/<wbr>PThreadMutex.cpp<br>+++ b/src/OpenThreads/pthreads/<wbr>PThreadMutex.cpp<br>@@ -22,6 +22,8 @@<br> #include <OpenThreads/Mutex><br> #include "PThreadMutexPrivateData.h"<br> <br>+#include <stdio.h><br>+<br> using namespace OpenThreads;<br> <br> //---------------------------<wbr>------------------------------<wbr>-------------------<br>@@ -33,7 +35,7 @@ using namespace OpenThreads;<br> Mutex::Mutex(MutexType type):<br>     _mutexType(type)<br> {<br>-<br>+    printf("Mutex::Mutex(%d) %p\n", type, this);<br>     pthread_mutexattr_t mutex_attr;<br>     pthread_mutexattr_init( &mutex_attr );<br>     <br>@@ -107,6 +109,8 @@ Mutex::Mutex(MutexType type):<br> //<br> Mutex::~Mutex() {<br> <br>+    printf("Mutex::~Mutex() %p\n", this);<br>+<br>     PThreadMutexPrivateData *pd =<br>         static_cast<<wbr>PThreadMutexPrivateData*>(_<wbr>prvData);<br> <br>diff --git a/src/osg/Referenced.cpp b/src/osg/Referenced.cpp<br>index 95b665c57..267bda310 100644<br>--- a/src/osg/Referenced.cpp<br>+++ b/src/osg/Referenced.cpp<br>@@ -79,11 +79,16 @@ struct ResetPointer<br> };<br> <br> typedef ResetPointer<DeleteHandler> DeleteHandlerPointer;<br>+<br>+#if 1<br>+#include <stdio.h><br>+<br> typedef ResetPointer<OpenThreads::<wbr>Mutex> GlobalMutexPointer;<br> <br> OpenThreads::Mutex* Referenced::<wbr>getGlobalReferencedMutex()<br> {<br>     static GlobalMutexPointer s_ReferencedGlobalMutext = new OpenThreads::Mutex;<br>+    printf("Referenced::<wbr>getGlobalReferencedMutex() %p\n", (s_ReferencedGlobalMutext.get(<wbr>)));<br>     return s_ReferencedGlobalMutext.get()<wbr>;<br> }<br> <br>@@ -96,6 +101,17 @@ struct InitGlobalMutexes<br>     }<br> };<br> static InitGlobalMutexes s_initGlobalMutexes;<br>+#else<br>+<br>+#include <stdio.h><br>+<br>+static OpenThreads::Mutex s_ReferencedGlobalMutex;<br>+OpenThreads::Mutex* Referenced::<wbr>getGlobalReferencedMutex()<br>+{<br>+    printf("Referenced::<wbr>getGlobalReferencedMutex() %p\n", (&s_ReferencedGlobalMutex));<br>+    return &s_ReferencedGlobalMutex;<br>+}<br>+#endif<br> <br> // static std::auto_ptr<DeleteHandler> s_deleteHandler(0);<br> static DeleteHandlerPointer s_deleteHandler(0);<br>diff --git a/src/osg/StateAttribute.cpp b/src/osg/StateAttribute.cpp<br>index e239fb3aa..c7df40894 100644<br>--- a/src/osg/StateAttribute.cpp<br>+++ b/src/osg/StateAttribute.cpp<br>@@ -39,6 +39,8 @@ void StateAttribute::removeParent(<wbr>osg::StateSet* object)<br> <br>     ParentList::iterator pitr = std::find(_parents.begin(),_<wbr>parents.end(),object);<br>     if (pitr!=_parents.end()) _parents.erase(pitr);<br>+<br>+    printf("StateAttribute::<wbr>removeParent()\n");<br> }<br> <br> </div><div><br></div><div><br></div></div>
</blockquote></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:osg-users+unsubscribe@googlegroups.com">osg-users+unsubscribe@googlegroups.com</a>.<br />
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/osg-users/5170457d-c81d-4a7b-8ad2-27f8cface71c%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/osg-users/5170457d-c81d-4a7b-8ad2-27f8cface71c%40googlegroups.com</a>.<br />