Merge branch 'optimize_object_paging_refs_exclusion' into 'master'

Optimize object paging refs exclusion

See merge request OpenMW/openmw!4075
pull/3235/head
psi29a 2 weeks ago
commit 41a2a4082f

@ -343,7 +343,12 @@ namespace MWGui
MWBase::Environment::get().getInputManager()->update(0, true, true);
mResourceSystem->reportStats(mViewer->getFrameStamp()->getFrameNumber(), mViewer->getViewerStats());
osg::Stats* const stats = mViewer->getViewerStats();
const unsigned frameNumber = mViewer->getFrameStamp()->getFrameNumber();
stats->setAttribute(frameNumber, "Loading", 1);
mResourceSystem->reportStats(frameNumber, stats);
if (osgUtil::IncrementalCompileOperation* ico = mViewer->getIncrementalCompileOperation())
{
ico->setMinimumTimeAvailableForGLCompileAndDeletePerFrame(1.f / getTargetFrameRate());

@ -555,11 +555,19 @@ namespace MWRender
// TODO
}
if (activeGrid)
if (activeGrid && !refs.empty())
{
std::lock_guard<std::mutex> lock(mRefTrackerMutex);
for (auto ref : getRefTracker().mBlacklist)
refs.erase(ref);
const std::set<ESM::RefNum>& blacklist = getRefTracker().mBlacklist;
if (blacklist.size() < refs.size())
{
for (ESM::RefNum ref : blacklist)
refs.erase(ref);
}
else
{
std::erase_if(refs, [&](const auto& ref) { return blacklist.contains(ref.first); });
}
}
osg::Vec2f minBound = (center - osg::Vec2f(size / 2.f, size / 2.f));

@ -54,6 +54,7 @@ namespace Resource
constexpr std::string_view firstPage[] = {
"FrameNumber",
"",
"Loading",
"Compiling",
"WorkQueue",
"WorkThread",
@ -75,7 +76,6 @@ namespace Resource
"",
"",
"",
"",
};
static_assert(std::size(firstPage) == itemsPerPage);

Loading…
Cancel
Save