소스 검색

profiling blocks for navmesh subsystem analysis

Azaezel 8 년 전
부모
커밋
83aa47da1a
2개의 변경된 파일11개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 0
      Engine/source/navigation/navMesh.cpp
  2. 7 4
      Engine/source/navigation/navPath.cpp

+ 4 - 0
Engine/source/navigation/navMesh.cpp

@@ -739,6 +739,7 @@ Box3F NavMesh::getTileBox(U32 id)
 
 void NavMesh::updateTiles(bool dirty)
 {
+   PROFILE_SCOPE(NavMesh_updateTiles);
    if(!isProperlyAdded())
       return;
 
@@ -793,6 +794,7 @@ void NavMesh::processTick(const Move *move)
 
 void NavMesh::buildNextTile()
 {
+   PROFILE_SCOPE(NavMesh_buildNextTile);
    if(!mDirtyTiles.empty())
    {
       // Pop a single dirty tile and process it.
@@ -1099,6 +1101,7 @@ unsigned char *NavMesh::buildTileData(const Tile &tile, TileData &data, U32 &dat
 /// this NavMesh object.
 void NavMesh::buildTiles(const Box3F &box)
 {
+   PROFILE_SCOPE(NavMesh_buildTiles);
    // Make sure we've already built or loaded.
    if(!nm)
       return;
@@ -1124,6 +1127,7 @@ DefineEngineMethod(NavMesh, buildTiles, void, (Box3F box),,
 
 void NavMesh::buildTile(const U32 &tile)
 {
+   PROFILE_SCOPE(NavMesh_buildTile);
    if(tile < mTiles.size())
    {
       mDirtyTiles.push_back_unique(tile);

+ 7 - 4
Engine/source/navigation/navPath.cpp

@@ -369,6 +369,7 @@ void NavPath::resize()
 
 bool NavPath::plan()
 {
+   PROFILE_SCOPE(NavPath_plan);
    // Initialise filter.
    mFilter.setIncludeFlags(mLinkTypes.getFlags());
 
@@ -430,15 +431,15 @@ bool NavPath::visitNext()
 
    if(dtStatusFailed(mQuery->findNearestPoly(from, extents, &mFilter, &startRef, NULL)) || !startRef)
    {
-      Con::errorf("No NavMesh polygon near visit point (%g, %g, %g) of NavPath %s",
-         start.x, start.y, start.z, getIdString());
+      //Con::errorf("No NavMesh polygon near visit point (%g, %g, %g) of NavPath %s",
+         //start.x, start.y, start.z, getIdString());
       return false;
    }
 
    if(dtStatusFailed(mQuery->findNearestPoly(to, extents, &mFilter, &endRef, NULL)) || !endRef)
    {
-      Con::errorf("No NavMesh polygon near visit point (%g, %g, %g) of NavPath %s",
-         end.x, end.y, end.z, getIdString());
+      //Con::errorf("No NavMesh polygon near visit point (%g, %g, %g) of NavPath %s",
+         //end.x, end.y, end.z, getIdString());
       return false;
    }
 
@@ -452,6 +453,7 @@ bool NavPath::visitNext()
 
 bool NavPath::update()
 {
+   PROFILE_SCOPE(NavPath_update);
    if(dtStatusInProgress(mStatus))
       mStatus = mQuery->updateSlicedFindPath(mMaxIterations, NULL);
    if(dtStatusSucceed(mStatus))
@@ -527,6 +529,7 @@ bool NavPath::finalise()
 
 void NavPath::processTick(const Move *move)
 {
+   PROFILE_SCOPE(NavPath_processTick);
    if(!mMesh)
       if(Sim::findObject(mMeshName.c_str(), mMesh))
          plan();