diff --git a/BUILD.bazel b/BUILD.bazel index d6f8b35af..2be3c7c90 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -72,6 +72,7 @@ cc_library( "@gz-common//events", "@gz-common//geospatial", "@gz-common//graphics", + "@gz-common//profiler", "@gz-math", "@gz-plugin//:loader", "@gz-utils//:ImplPtr", diff --git a/CMakeLists.txt b/CMakeLists.txt index 249c4a055..e0f757287 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,14 @@ gz_configure_project(VERSION_SUFFIX pre1) #============================================================================ option(USE_UNOFFICIAL_OGRE_VERSIONS "Accept unsupported Ogre versions in the build" OFF) +option(ENABLE_PROFILER "Enable Gazebo Profiler" FALSE) + +if(ENABLE_PROFILER) + add_definitions("-DGZ_PROFILER_ENABLE=1") +else() + add_definitions("-DGZ_PROFILER_ENABLE=0") +endif() + #============================================================================ # Search for project-specific dependencies #============================================================================ @@ -35,7 +43,7 @@ gz_find_package(gz-math REQUIRED COMPONENTS eigen3) #-------------------------------------- # Find gz-common gz_find_package(gz-common REQUIRED - COMPONENTS graphics events geospatial) + COMPONENTS graphics events profiler geospatial) #-------------------------------------- # Find gz-plugin diff --git a/ogre/src/OgreCOMVisual.cc b/ogre/src/OgreCOMVisual.cc index 39100d29b..be7bbf46f 100644 --- a/ogre/src/OgreCOMVisual.cc +++ b/ogre/src/OgreCOMVisual.cc @@ -14,6 +14,7 @@ * limitations under the License. * */ +#include #include "gz/rendering/ogre/OgreCOMVisual.hh" #include "gz/rendering/ogre/OgreDynamicLines.hh" @@ -49,6 +50,7 @@ OgreCOMVisual::~OgreCOMVisual() ////////////////////////////////////////////////// void OgreCOMVisual::PreRender() { + GZ_PROFILE("OgreCOMVisual::PreRender"); if (this->HasParent() && this->parentName.empty()) this->parentName = this->Parent()->Name(); @@ -78,6 +80,7 @@ Ogre::MovableObject *OgreCOMVisual::OgreObject() const ////////////////////////////////////////////////// void OgreCOMVisual::CreateVisual() { + GZ_PROFILE("OgreCOMVisual::CreateVisual"); if (!this->dataPtr->crossLines) { this->dataPtr->crossLines = std::shared_ptr( diff --git a/ogre/src/OgreCamera.cc b/ogre/src/OgreCamera.cc index 8dd805328..4e5a7d21a 100644 --- a/ogre/src/OgreCamera.cc +++ b/ogre/src/OgreCamera.cc @@ -15,6 +15,7 @@ * */ +#include #include "gz/rendering/InstallationDirectories.hh" #include "gz/rendering/ogre/OgreCamera.hh" #include "gz/rendering/ogre/OgreConversions.hh" @@ -132,6 +133,7 @@ void OgreCamera::SetMaterial(const MaterialPtr &_material) ////////////////////////////////////////////////// void OgreCamera::Render() { + GZ_PROFILE("OgreCamera::Render"); this->renderTexture->Render(); } @@ -217,6 +219,7 @@ void OgreCamera::DestroyRenderTexture() ////////////////////////////////////////////////// unsigned int OgreCamera::RenderTextureGLId() const { + GZ_PROFILE("OgreCamera::RenderTextureGLId"); if (!this->renderTexture) return 0u; @@ -240,6 +243,7 @@ void OgreCamera::SetSelectionBuffer() VisualPtr OgreCamera::VisualAt(const math::Vector2i &_mousePos) { + GZ_PROFILE("OgreCamera::VisualAt"); VisualPtr result; if (!this->selectionBuffer) diff --git a/ogre/src/OgreCapsule.cc b/ogre/src/OgreCapsule.cc index a89acd030..1eb9a0d3a 100644 --- a/ogre/src/OgreCapsule.cc +++ b/ogre/src/OgreCapsule.cc @@ -19,6 +19,7 @@ #include #include +#include #include "gz/rendering/ogre/OgreCapsule.hh" #include "gz/rendering/ogre/OgreMaterial.hh" @@ -59,6 +60,7 @@ Ogre::MovableObject *OgreCapsule::OgreObject() const ////////////////////////////////////////////////// void OgreCapsule::PreRender() { + GZ_PROFILE("OgreCapsule::PreRender"); if (this->capsuleDirty) { this->Update(); @@ -91,6 +93,7 @@ void OgreCapsule::Destroy() ////////////////////////////////////////////////// void OgreCapsule::Update() { + GZ_PROFILE("OgreCapsule::Update"); common::MeshManager *meshMgr = common::MeshManager::Instance(); std::string capsuleMeshName = this->Name() + "_capsule_mesh" + "_" + std::to_string(this->radius) diff --git a/ogre/src/OgreDepthCamera.cc b/ogre/src/OgreDepthCamera.cc index 511a1d5ea..569de9b60 100644 --- a/ogre/src/OgreDepthCamera.cc +++ b/ogre/src/OgreDepthCamera.cc @@ -22,6 +22,8 @@ #endif #include #endif +#include + #include #include @@ -196,6 +198,7 @@ void OgreDepthCamera::CreateCamera() ///////////////////////////////////////////////// void OgreDepthCamera::CreatePointCloudTexture() { + GZ_PROFILE("OgreDepthCamera::CreatePointCloudTexture"); if (this->dataPtr->pcdTexture || this->dataPtr->colorTexture) return; @@ -265,6 +268,7 @@ void OgreDepthCamera::DestroyPointCloudTexture() ///////////////////////////////////////////////// void OgreDepthCamera::CreateDepthTexture() { + GZ_PROFILE("OgreDepthCamera::CreateDepthTexture"); if (this->ogreCamera == nullptr) { gzerr << "Ogre camera cannot be created" << std::endl; @@ -317,6 +321,7 @@ void OgreDepthCamera::SetProjectionMatrix(const math::Matrix4d &_matrix) { ////////////////////////////////////////////////// void OgreDepthCamera::PreRender() { + GZ_PROFILE("OgreDepthCamera::PreRender"); if (!this->depthTexture) this->CreateDepthTexture(); if (!this->dataPtr->pcdTexture || !this->dataPtr->colorTexture) @@ -326,6 +331,7 @@ void OgreDepthCamera::PreRender() ////////////////////////////////////////////////// void OgreDepthCamera::Render() { + GZ_PROFILE("OgreDepthCamera::Render"); Ogre::SceneManager *sceneMgr = this->scene->OgreSceneManager(); Ogre::ShadowTechnique shadowTech = sceneMgr->getShadowTechnique(); @@ -359,6 +365,7 @@ void OgreDepthCamera::UpdateRenderTarget(OgreRenderTexturePtr _target, Ogre::Material *_material, const std::string &_matName) { + GZ_PROFILE("OgreDepthCamera::UpdateRenderTarget"); Ogre::RenderTarget *target = _target->RenderTarget(); std::string matName = _matName; @@ -429,6 +436,7 @@ void OgreDepthCamera::UpdateRenderTarget(OgreRenderTexturePtr _target, ////////////////////////////////////////////////// void OgreDepthCamera::PostRender() { + GZ_PROFILE("OgreDepthCamera::PostRender"); unsigned int width = this->ImageWidth(); unsigned int height = this->ImageHeight(); unsigned int len = width * height; diff --git a/ogre/src/OgreDistortionPass.cc b/ogre/src/OgreDistortionPass.cc index ed53ce0f6..89423a391 100644 --- a/ogre/src/OgreDistortionPass.cc +++ b/ogre/src/OgreDistortionPass.cc @@ -17,6 +17,7 @@ #include +#include #include "gz/rendering/RenderPassSystem.hh" #include "gz/rendering/ogre/OgreIncludes.hh" @@ -122,6 +123,7 @@ OgreDistortionPass::~OgreDistortionPass() ////////////////////////////////////////////////// void OgreDistortionPass::PreRender() { + GZ_PROFILE("OgreDistortionPass::PreRender"); if (!this->dataPtr->distortionInstance) return; if (this->enabled != this->dataPtr->distortionInstance->getEnabled()) @@ -131,6 +133,7 @@ void OgreDistortionPass::PreRender() ////////////////////////////////////////////////// void OgreDistortionPass::CreateRenderPass() { + GZ_PROFILE("OgreDistortionPass::CreateRenderPass"); if (!this->ogreCamera[0]) { gzerr << "No camera set for applying Distortion Pass" << std::endl; @@ -470,6 +473,7 @@ gz::math::Vector2d OgreDistortionPass::Distort( const gz::math::Vector2d &_center, double _k1, double _k2, double _k3, double _p1, double _p2, unsigned int _width, double _f) { + GZ_PROFILE("OgreDistortionPass::Distort"); // apply Brown's distortion model, see // http://en.wikipedia.org/wiki/Distortion_%28optics%29#Software_correction @@ -512,6 +516,7 @@ gz::math::Vector2d ////////////////////////////////////////////////// void OgreDistortionPass::CalculateAndApplyDistortionScale() { + GZ_PROFILE("OgreDistortionPass::CalculateAndApplyDistortionScale"); if (this->dataPtr->distortionMaterial.isNull()) return; diff --git a/ogre/src/OgreDynamicLines.cc b/ogre/src/OgreDynamicLines.cc index 25ec42f43..2962df2bc 100644 --- a/ogre/src/OgreDynamicLines.cc +++ b/ogre/src/OgreDynamicLines.cc @@ -21,6 +21,7 @@ #include #include "gz/common/Console.hh" +#include #include "gz/rendering/ogre/OgreDynamicLines.hh" using namespace gz; @@ -129,6 +130,7 @@ void OgreDynamicLines::Clear() ///////////////////////////////////////////////// void OgreDynamicLines::Update() { + GZ_PROFILE("OgreDynamicLines::Update"); if (this->dataPtr->dirty && this->dataPtr->points.size() > 1) this->FillHardwareBuffers(); } @@ -146,6 +148,7 @@ void OgreDynamicLines::CreateVertexDeclaration() ///////////////////////////////////////////////// void OgreDynamicLines::FillHardwareBuffers() { + GZ_PROFILE("OgreDynamicLines::FillHardwareBuffers"); int size = this->dataPtr->points.size(); this->PrepareHardwareBuffers(size, 0); diff --git a/ogre/src/OgreDynamicRenderable.cc b/ogre/src/OgreDynamicRenderable.cc index 412ef7b3b..9b99e4235 100644 --- a/ogre/src/OgreDynamicRenderable.cc +++ b/ogre/src/OgreDynamicRenderable.cc @@ -16,6 +16,8 @@ */ #include "gz/common/Console.hh" +#include + #include "gz/rendering/ogre/OgreDynamicRenderable.hh" using namespace gz; @@ -139,6 +141,7 @@ MarkerType OgreDynamicRenderable::OperationType() const void OgreDynamicRenderable::PrepareHardwareBuffers(size_t vertexCount, size_t indexCount) { + GZ_PROFILE("OgreDynamicRenderable::PrepareHardwareBuffers"); // Prepare vertex buffer size_t newVertCapacity = this->vertexBufferCapacity; diff --git a/ogre/src/OgreGaussianNoisePass.cc b/ogre/src/OgreGaussianNoisePass.cc index b27770e4c..289080814 100644 --- a/ogre/src/OgreGaussianNoisePass.cc +++ b/ogre/src/OgreGaussianNoisePass.cc @@ -17,6 +17,7 @@ #include +#include #include "gz/rendering/RenderPassSystem.hh" #include "gz/rendering/ogre/OgreIncludes.hh" @@ -105,6 +106,7 @@ OgreGaussianNoisePass::~OgreGaussianNoisePass() ////////////////////////////////////////////////// void OgreGaussianNoisePass::PreRender() { + GZ_PROFILE("OgreGaussianNoisePass::PreRender"); if (!this->gaussianNoiseInstance[0]) return; @@ -121,6 +123,7 @@ void OgreGaussianNoisePass::PreRender() ////////////////////////////////////////////////// void OgreGaussianNoisePass::CreateRenderPass() { + GZ_PROFILE("OgreGaussianNoisePass::CreateRenderPass"); if (!this->ogreCamera[0]) { gzerr << "No camera set for applying Gaussian Noise Pass" << std::endl; diff --git a/ogre/src/OgreGpuRays.cc b/ogre/src/OgreGpuRays.cc index 9b09b7903..4b8f4b647 100644 --- a/ogre/src/OgreGpuRays.cc +++ b/ogre/src/OgreGpuRays.cc @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -419,6 +420,7 @@ void OgreGpuRays::ConfigureCameras() ///////////////////////////////////////////////////////// void OgreGpuRays::CreateGpuRaysTextures() { + GZ_PROFILE("OgreGpuRays::CreateGpuRaysTextures"); this->ConfigureCameras(); this->CreateOrthoCam(); @@ -552,6 +554,7 @@ void OgreGpuRays::UpdateRenderTarget(Ogre::RenderTarget *_target, Ogre::Material *_material, Ogre::Camera *_cam, const bool _updateTex) { + GZ_PROFILE("OgreGpuRays::UpdateRenderTarget"); Ogre::SceneManager *sceneMgr = this->scene->OgreSceneManager(); Ogre::RenderSystem *renderSys = sceneMgr->getDestinationRenderSystem(); // Get pointer to the material pass @@ -620,6 +623,7 @@ void OgreGpuRays::UpdateRenderTarget(Ogre::RenderTarget *_target, ////////////////////////////////////////////////// void OgreGpuRays::Render() { + GZ_PROFILE("OgreGpuRays::Render"); Ogre::SceneManager *sceneMgr = this->scene->OgreSceneManager(); sceneMgr->_suppressRenderStateChanges(true); @@ -663,6 +667,7 @@ void OgreGpuRays::Render() ////////////////////////////////////////////////// void OgreGpuRays::PreRender() { + GZ_PROFILE("OgreGpuRays::PreRender"); if (this->dataPtr->textureCount == 0) this->CreateGpuRaysTextures(); } @@ -670,6 +675,7 @@ void OgreGpuRays::PreRender() ////////////////////////////////////////////////// void OgreGpuRays::PostRender() { + GZ_PROFILE("OgreGpuRays::PostRender"); for (unsigned int i = 0; i < this->dataPtr->textureCount; ++i) { auto rt = @@ -718,6 +724,7 @@ const float* OgreGpuRays::Data() const ////////////////////////////////////////////////// void OgreGpuRays::Copy(float *_dataDest) { + GZ_PROFILE("OgreGpuRays::Copy"); auto rt = this->dataPtr->secondPassTexture->getBuffer()->getRenderTarget(); const Ogre::Viewport *secondPassViewport = rt->getViewport(0); unsigned int width = secondPassViewport->getActualWidth(); @@ -732,6 +739,7 @@ void OgreGpuRays::Copy(float *_dataDest) ///////////////////////////////////////////////// void OgreGpuRays::CreateOrthoCam() { + GZ_PROFILE("OgreGpuRays::CreateOrthoCam"); // create ogre camera object Ogre::SceneManager *ogreSceneManager; ogreSceneManager = this->scene->OgreSceneManager(); @@ -812,6 +820,7 @@ void OgreGpuRays::SetRangeCount( ///////////////////////////////////////////////// void OgreGpuRays::CreateMesh() { + GZ_PROFILE("OgreGpuRays::CreateMesh"); std::string meshName = this->Name() + "_undistortion_mesh"; common::Mesh *mesh = new common::Mesh(); @@ -925,6 +934,7 @@ void OgreGpuRays::CreateMesh() ///////////////////////////////////////////////// void OgreGpuRays::CreateCanvas() { + GZ_PROFILE("OgreGpuRays::CreateCanvas"); this->CreateMesh(); this->dataPtr->visual = this->scene->CreateVisual( @@ -962,6 +972,7 @@ void OgreGpuRays::notifyRenderSingleObject(Ogre::Renderable *_rend, const Ogre::Pass* /*pass*/, const Ogre::AutoParamDataSource* /*source*/, const Ogre::LightList* /*lights*/, bool /*supp*/) { + GZ_PROFILE("OgreGpuRays::notifyRenderSingleObject"); // TODO(anyone): this function sets the retro for each obj // but currently just sets it to 0 diff --git a/ogre/src/OgreGrid.cc b/ogre/src/OgreGrid.cc index a2052186b..f89838c50 100644 --- a/ogre/src/OgreGrid.cc +++ b/ogre/src/OgreGrid.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreGrid.hh" #include "gz/rendering/ogre/OgreMaterial.hh" @@ -47,6 +48,7 @@ OgreGrid::~OgreGrid() ////////////////////////////////////////////////// void OgreGrid::PreRender() { + GZ_PROFILE("OgreGrid::PreRender"); if (this->gridDirty) { this->Create(); diff --git a/ogre/src/OgreHeightmap.cc b/ogre/src/OgreHeightmap.cc index f90c2005c..1152686fb 100644 --- a/ogre/src/OgreHeightmap.cc +++ b/ogre/src/OgreHeightmap.cc @@ -18,6 +18,7 @@ #include #include +#include #include #include "gz/rendering/ogre/OgreCamera.hh" @@ -706,6 +707,7 @@ void OgreHeightmap::Init() ////////////////////////////////////////////////// void OgreHeightmap::PreRender() { + GZ_PROFILE("OgreHeightmap::PreRender"); if (nullptr == this->dataPtr->terrainGroup) { return; @@ -837,6 +839,7 @@ void OgreHeightmap::ConfigureTerrainDefaults() bool OgreHeightmap::PrepareTerrain( const std::string &_terrainDirPath) { + GZ_PROFILE("OgreHeightmap::PrepareTerrain"); // Compute the original heightmap's image. auto heightmapHash = common::sha1>(this->dataPtr->heights); @@ -876,6 +879,7 @@ bool OgreHeightmap::PrepareTerrain( void OgreHeightmap::UpdateTerrainHash(const std::string &_hash, const std::string &_terrainDir) { + GZ_PROFILE("OgreHeightmap::UpdateTerrainHash"); // Create the subdirectories if they do not exist common::createDirectories(_terrainDir); @@ -903,6 +907,7 @@ void OgreHeightmap::UpdateTerrainHash(const std::string &_hash, void OgreHeightmap::SplitHeights(const std::vector &_heightmap, int _n, std::vector> &_v) { + GZ_PROFILE("OgreHeightmap::SplitHeights"); // We support splitting the terrain in 4 or 16 pieces if (_n != 4 && _n != 16) { @@ -953,6 +958,7 @@ void OgreHeightmap::SplitHeights(const std::vector &_heightmap, ///////////////////////////////////////////////// void OgreHeightmap::DefineTerrain(int _x, int _y) { + GZ_PROFILE("OgreHeightmap::DefineTerrain"); Ogre::String filename = this->dataPtr->terrainGroup->generateFilename(_x, _y); bool resourceExists = @@ -1035,6 +1041,7 @@ void OgreHeightmap::CreateMaterial() ///////////////////////////////////////////////// void OgreHeightmap::SetupShadows(bool _enableShadows) { + GZ_PROFILE("OgreHeightmap::SetupShadows"); auto matGen = this->dataPtr->terrainGlobals->getDefaultMaterialGenerator(); // Assume we get a shader model 2 material profile @@ -1073,6 +1080,7 @@ void OgreHeightmap::SetupShadows(bool _enableShadows) ///////////////////////////////////////////////// bool OgreHeightmap::InitBlendMaps(Ogre::Terrain *_terrain) { + GZ_PROFILE("OgreHeightmap::InitBlendMaps"); if (nullptr == _terrain) { gzerr << "Invalid terrain\n"; @@ -2722,6 +2730,7 @@ bool TerrainMaterial::Profile::isVertexCompressionSupported() const Ogre::MaterialPtr TerrainMaterial::Profile::generate( const Ogre::Terrain *_terrain) { + GZ_PROFILE("TerrainMaterial::Profile::generate"); const Ogre::String& matName = _terrain->getMaterialName(); Ogre::MaterialPtr mat = @@ -2839,6 +2848,7 @@ void TerrainMaterial::Profile::updateParamsForCompositeMap( ////////////////////////////////////////////////// void TerrainMaterial::Profile::requestOptions(Ogre::Terrain *_terrain) { + GZ_PROFILE("TerrainMaterial::Profile::requestOptions"); _terrain->_setMorphRequired(true); // enable global normal map _terrain->_setNormalMapRequired(true); diff --git a/ogre/src/OgreLensFlarePass.cc b/ogre/src/OgreLensFlarePass.cc index f03c4180c..febe85f01 100644 --- a/ogre/src/OgreLensFlarePass.cc +++ b/ogre/src/OgreLensFlarePass.cc @@ -16,6 +16,7 @@ */ #include "gz/rendering/ogre/OgreLensFlarePass.hh" +#include #include #include "gz/rendering/RayQuery.hh" @@ -184,6 +185,7 @@ void OgreLensFlarePass::CreateRenderPass() ////////////////////////////////////////////////// void OgreLensFlarePass::PreRender(const CameraPtr &_camera) { + GZ_PROFILE("OgreLensFlarePass::PreRender"); if (!this->dataPtr->lensFlareInstance[0]) return; @@ -221,6 +223,7 @@ void OgreLensFlarePass::PreRender(const CameraPtr &_camera) ////////////////////////////////////////////////// void OgreLensFlarePass::PostRender() { + GZ_PROFILE("OgreLensFlarePass::PostRender"); if (!this->enabled || this->light == nullptr) return; @@ -277,6 +280,7 @@ uint32_t OgreLensFlarePass::OcclusionSteps() const double OgreLensFlarePass::OcclusionScale(const math::Vector3d &_imgPos, uint32_t _faceIdx) { + GZ_PROFILE("OgreLensFlarePass::OcclusionScale"); if (std::abs(this->dataPtr->occlusionSteps) <= 1e-7) { return this->dataPtr->scale; @@ -357,6 +361,7 @@ double OgreLensFlarePass::OcclusionScale(const math::Vector3d &_imgPos, void OgreLensFlareCompositorListenerPrivate::notifyMaterialRender( unsigned int _passId, Ogre::MaterialPtr &_mat) { + GZ_PROFILE("OgreLensFlareCompositorListenerPrivate::notifyMaterialRender"); if (!this->owner.enabled) return; diff --git a/ogre/src/OgreLidarVisual.cc b/ogre/src/OgreLidarVisual.cc index 4fcdbd146..67926f570 100644 --- a/ogre/src/OgreLidarVisual.cc +++ b/ogre/src/OgreLidarVisual.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreDynamicLines.hh" #include "gz/rendering/ogre/OgreLidarVisual.hh" #include "gz/rendering/ogre/OgreScene.hh" @@ -154,6 +155,7 @@ void OgreLidarVisual::ClearVisualData() ////////////////////////////////////////////////// void OgreLidarVisual::SetPoints(const std::vector &_points) { + GZ_PROFILE("OgreLidarVisual::SetPoints"); this->dataPtr->lidarPoints = _points; this->dataPtr->pointColors.clear(); for (size_t i = 0u; i < this->dataPtr->lidarPoints.size(); ++i) @@ -167,6 +169,7 @@ void OgreLidarVisual::SetPoints(const std::vector &_points) void OgreLidarVisual::SetPoints(const std::vector &_points, const std::vector &_colors) { + GZ_PROFILE("OgreLidarVisual::SetPoints_2"); if (_points.size() != _colors.size()) { gzerr << "Unequal size of point and color vector." @@ -181,6 +184,7 @@ void OgreLidarVisual::SetPoints(const std::vector &_points, ////////////////////////////////////////////////// void OgreLidarVisual::Update() { + GZ_PROFILE("OgreLidarVisual::Update"); if (this->lidarVisualType == LidarVisualType::LVT_NONE) { this->ClearVisualData(); diff --git a/ogre/src/OgreLightVisual.cc b/ogre/src/OgreLightVisual.cc index c1809ce7a..58593ca34 100644 --- a/ogre/src/OgreLightVisual.cc +++ b/ogre/src/OgreLightVisual.cc @@ -15,6 +15,8 @@ * */ +#include + #include "gz/rendering/ogre/OgreLightVisual.hh" #include "gz/rendering/ogre/OgreDynamicLines.hh" @@ -45,6 +47,7 @@ OgreLightVisual::~OgreLightVisual() ////////////////////////////////////////////////// void OgreLightVisual::PreRender() { + GZ_PROFILE("OgreLightVisual::PreRender"); if (this->dirtyLightVisual) { this->CreateVisual(); diff --git a/ogre/src/OgreMarker.cc b/ogre/src/OgreMarker.cc index 8cb3e22bf..75a1393a2 100644 --- a/ogre/src/OgreMarker.cc +++ b/ogre/src/OgreMarker.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreCapsule.hh" #include "gz/rendering/ogre/OgreDynamicLines.hh" @@ -54,6 +55,7 @@ OgreMarker::~OgreMarker() ////////////////////////////////////////////////// void OgreMarker::PreRender() { + GZ_PROFILE("OgreMarker::PreRender"); if (this->markerType == MarkerType::MT_POINTS && this->dataPtr->dynamicRenderable && this->dataPtr->dynamicRenderable->PointCount() > 0u) diff --git a/ogre/src/OgreMaterial.cc b/ogre/src/OgreMaterial.cc index bbbf6e9d5..2238159d9 100644 --- a/ogre/src/OgreMaterial.cc +++ b/ogre/src/OgreMaterial.cc @@ -17,6 +17,7 @@ #include #include +#include #include "gz/rendering/InstallationDirectories.hh" #include "gz/rendering/ShaderParams.hh" @@ -293,6 +294,7 @@ std::string OgreMaterial::Texture() const void OgreMaterial::SetTexture(const std::string &_name, const std::shared_ptr &_img) { + GZ_PROFILE("OgreMaterial::SetTexture"); if (_name.empty()) { this->ClearTexture(); @@ -378,12 +380,14 @@ void OgreMaterial::SetShaderType(enum ShaderType _type) ////////////////////////////////////////////////// void OgreMaterial::PreRender() { + GZ_PROFILE("OgreMaterial::PreRender"); this->UpdateShaderParams(); } ////////////////////////////////////////////////// void OgreMaterial::UpdateShaderParams() { + GZ_PROFILE("OgreMaterial::UpdateShaderParams"); if (this->vertexShaderParams && this->vertexShaderParams->IsDirty()) { Ogre::GpuProgramParametersSharedPtr ogreParams; @@ -404,6 +408,7 @@ void OgreMaterial::UpdateShaderParams() void OgreMaterial::UpdateShaderParams(ConstShaderParamsPtr _params, Ogre::GpuProgramParametersSharedPtr _ogreParams) { + GZ_PROFILE("OgreMaterial::UpdateShaderParams_2"); for (const auto &name_param : *_params) { auto *constantDef = @@ -543,6 +548,7 @@ void OgreMaterial::UpdateShaderParams(ConstShaderParamsPtr _params, ////////////////////////////////////////////////// void OgreMaterial::SetVertexShader(const std::string &_path) { + GZ_PROFILE("OgreMaterial::SetVertexShader"); if (_path.empty()) return; @@ -592,6 +598,7 @@ ShaderParamsPtr OgreMaterial::VertexShaderParams() ////////////////////////////////////////////////// void OgreMaterial::SetFragmentShader(const std::string &_path) { + GZ_PROFILE("OgreMaterial::SetFragmentShader"); if (_path.empty()) return; @@ -678,6 +685,7 @@ void OgreMaterial::LoadOneImage(const std::string &_name, Ogre::Image &_image) ////////////////////////////////////////////////// void OgreMaterial::SetTextureImpl(const std::string &_texture) { + GZ_PROFILE("OgreMaterial::SetTextureImpl"); if (!Ogre::ResourceGroupManager::getSingleton().resourceExists( this->ogreGroup, _texture)) { @@ -693,6 +701,7 @@ void OgreMaterial::SetTextureImpl(const std::string &_texture) void OgreMaterial::SetTextureDataImpl(const std::string &_texture, const std::shared_ptr &_img) { + GZ_PROFILE("OgreMaterial::SetTextureDataImpl"); // Create the texture only if it was not created already if (!Ogre::ResourceGroupManager::getSingleton().resourceExists( this->ogreGroup, _texture)) @@ -771,6 +780,7 @@ Ogre::TexturePtr OgreMaterial::CreateTexture(const std::string &_name) ////////////////////////////////////////////////// void OgreMaterial::UpdateTransparency() { + GZ_PROFILE("OgreMaterial::UpdateTransparency"); Ogre::ColourValue color = this->ogrePass->getAmbient(); double alpha = (1 - this->transparency) * color.a; @@ -801,6 +811,7 @@ void OgreMaterial::UpdateTransparency() void OgreMaterial::SetAlphaFromTexture(bool _enabled, double _alpha, bool _twoSided) { + GZ_PROFILE("OgreMaterial::SetAlphaFromTexture"); // TODO(anyone) Implement alpha testing for shadow caster pass BaseMaterial::SetAlphaFromTexture(_enabled, _alpha, _twoSided); this->UpdateTransparency(); @@ -810,6 +821,7 @@ void OgreMaterial::SetAlphaFromTexture(bool _enabled, void OgreMaterial::SetDepthMaterial(const double _far, const double _near) { + GZ_PROFILE("OgreMaterial::SetDepthMaterial"); // Configure Ogre Pass settings for Depth this->ogrePass->setDepthCheckEnabled(false); this->ogrePass->setDepthWriteEnabled(false); @@ -847,6 +859,7 @@ void OgreMaterial::SetDepthMaterial(const double _far, ////////////////////////////////////////////////// void OgreMaterial::UpdateColorOperation() { + GZ_PROFILE("OgreMaterial::UpdateColorOperation"); Ogre::LayerBlendOperationEx operation; Ogre::LayerBlendSource source1; Ogre::LayerBlendSource source2; diff --git a/ogre/src/OgreMaterialSwitcher.cc b/ogre/src/OgreMaterialSwitcher.cc index f20fd3c3f..1b21c5ac4 100644 --- a/ogre/src/OgreMaterialSwitcher.cc +++ b/ogre/src/OgreMaterialSwitcher.cc @@ -16,6 +16,8 @@ */ #include "gz/common/Console.hh" +#include + #include "gz/rendering/ogre/OgreIncludes.hh" #include "gz/rendering/ogre/OgreMaterialSwitcher.hh" #include "gz/rendering/RenderTypes.hh" @@ -42,6 +44,7 @@ Ogre::Technique *OgreMaterialSwitcher::handleSchemeNotFound( Ogre::Material *_originalMaterial, uint16_t /*_lodIndex*/, const Ogre::Renderable *_rend) { + GZ_PROFILE("OgreMaterialSwitcher::handleSchemeNotFound"); // selection buffer: check scheme name against the one specified in // OgreSelectionBuffer::CreateRTTBuffer. Only proceed if this is a callback // from the selection camera. diff --git a/ogre/src/OgreMesh.cc b/ogre/src/OgreMesh.cc index fa5e62f53..a8f69fba8 100644 --- a/ogre/src/OgreMesh.cc +++ b/ogre/src/OgreMesh.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreConversions.hh" #include "gz/rendering/ogre/OgreMesh.hh" @@ -91,6 +92,7 @@ bool OgreMesh::HasSkeleton() const std::map OgreMesh::SkeletonLocalTransforms() const { + GZ_PROFILE("OgreMesh::SkeletonLocalTransforms"); std::map mapTfs; if (this->ogreEntity->hasSkeleton()) { @@ -118,6 +120,7 @@ std::map void OgreMesh::SetSkeletonLocalTransforms( const std::map &_tfs) { + GZ_PROFILE("OgreMesh::SetSkeletonLocalTransforms"); if (!this->ogreEntity->hasSkeleton()) { return; @@ -141,6 +144,7 @@ void OgreMesh::SetSkeletonLocalTransforms( void OgreMesh::SetSkeletonAnimationEnabled(const std::string &_name, bool _enabled, bool _loop, float _weight) { + GZ_PROFILE("OgreMesh::SetSkeletonAnimationEnabled"); if (!this->ogreEntity->hasAnimationState(_name)) { gzerr << "Skeleton animation name not found: " << _name << std::endl; @@ -247,6 +251,7 @@ bool OgreMesh::SkeletonAnimationEnabled(const std::string &_name) const void OgreMesh::UpdateSkeletonAnimation( std::chrono::steady_clock::duration _time) { + GZ_PROFILE("OgreMesh::UpdateSkeletonAnimation"); Ogre::AnimationStateSet *animationStateSet = this->ogreEntity->getAllAnimationStates(); diff --git a/ogre/src/OgreMeshFactory.cc b/ogre/src/OgreMeshFactory.cc index db6a8a86b..67d399ac4 100644 --- a/ogre/src/OgreMeshFactory.cc +++ b/ogre/src/OgreMeshFactory.cc @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -51,6 +52,7 @@ OgreMeshFactory::~OgreMeshFactory() ////////////////////////////////////////////////// OgreMeshPtr OgreMeshFactory::Create(const MeshDescriptor &_desc) { + GZ_PROFILE("OgreMeshFactory::Create"); // create ogre entity OgreMeshPtr mesh(new OgreMesh); MeshDescriptor normDesc = _desc; @@ -85,6 +87,7 @@ Ogre::Entity *OgreMeshFactory::OgreEntity(const MeshDescriptor &_desc) ////////////////////////////////////////////////// bool OgreMeshFactory::Load(const MeshDescriptor &_desc) { + GZ_PROFILE("OgreMeshFactory::Load"); if (!this->Validate(_desc)) { return false; @@ -108,6 +111,7 @@ bool OgreMeshFactory::IsLoaded(const MeshDescriptor &_desc) ////////////////////////////////////////////////// void OgreMeshFactory::ClearMaterialsCache(const std::string &_name) { + GZ_PROFILE("OgreMeshFactory::ClearMaterialsCache"); auto it = this->materialCache.begin(); for (auto &mat : this->materialCache) { @@ -127,6 +131,7 @@ void OgreMeshFactory::ClearMaterialsCache(const std::string &_name) ////////////////////////////////////////////////// bool OgreMeshFactory::LoadImpl(const MeshDescriptor &_desc) { + GZ_PROFILE("OgreMeshFactory::LoadImpl"); Ogre::MeshPtr ogreMesh; OgreRenderEngine::Instance()->AddResourcePath(_desc.mesh->Path()); @@ -554,6 +559,7 @@ OgreSubMeshStoreFactory::~OgreSubMeshStoreFactory() ////////////////////////////////////////////////// OgreSubMeshStorePtr OgreSubMeshStoreFactory::Create() { + GZ_PROFILE("OgreSubMeshStoreFactory::Create"); OgreSubMeshStorePtr subMeshes(new OgreSubMeshStore); const auto count = this->ogreEntity->getNumSubEntities(); @@ -569,6 +575,7 @@ OgreSubMeshStorePtr OgreSubMeshStoreFactory::Create() ////////////////////////////////////////////////// OgreSubMeshPtr OgreSubMeshStoreFactory::CreateSubMesh(unsigned int _index) { + GZ_PROFILE("OgreSubMeshStoreFactory::CreateSubMesh"); OgreSubMeshPtr subMesh(new OgreSubMesh); subMesh->id = _index; diff --git a/ogre/src/OgreNode.cc b/ogre/src/OgreNode.cc index 4d1a83568..1b7813d16 100644 --- a/ogre/src/OgreNode.cc +++ b/ogre/src/OgreNode.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreCamera.hh" #include "gz/rendering/ogre/OgreNode.hh" @@ -177,6 +178,7 @@ NodeStorePtr OgreNode::Children() const ////////////////////////////////////////////////// bool OgreNode::AttachChild(NodePtr _child) { + GZ_PROFILE("OgreNode::AttachChild"); if (nullptr == this->ogreNode) return false; @@ -197,6 +199,7 @@ bool OgreNode::AttachChild(NodePtr _child) ////////////////////////////////////////////////// bool OgreNode::DetachChild(NodePtr _child) { + GZ_PROFILE("OgreNode::DetachChild"); if (nullptr == this->ogreNode) return false; diff --git a/ogre/src/OgreProjector.cc b/ogre/src/OgreProjector.cc index 57aa7395d..f6573c1a3 100644 --- a/ogre/src/OgreProjector.cc +++ b/ogre/src/OgreProjector.cc @@ -26,6 +26,7 @@ #include #include +#include #include "gz/rendering/ogre/OgreCamera.hh" #include "gz/rendering/ogre/OgreConversions.hh" #include "gz/rendering/ogre/OgreDepthCamera.hh" @@ -234,6 +235,7 @@ OgreProjector::~OgreProjector() ///////////////////////////////////////////////// void OgreProjector::PreRender() { + GZ_PROFILE("OgreWireBox::PreRender"); if (this->dataPtr->initialized) { this->UpdateCameraListener(); @@ -360,6 +362,7 @@ void OgreProjectorListener::SetEnabled(bool _enabled) ///////////////////////////////////////////////// void OgreProjectorListener::CreateSceneNode() { + GZ_PROFILE("OgreProjectorListener::CreateSceneNode"); if (this->filterNode) { this->filterNode->detachObject(this->filterFrustum.get()); @@ -413,6 +416,7 @@ void OgreProjectorListener::SetFrustumClipDistance(double _near, ///////////////////////////////////////////////// std::unordered_set OgreProjectorListener::FindVisibleMaterials() { + GZ_PROFILE("OgreProjectorListener::FindVisibleMaterials"); std::unordered_set newVisibleMaterials; Ogre::PlaneBoundedVolumeList volumeList; @@ -453,6 +457,7 @@ void OgreProjectorListener::AddDecalToVisibleMaterials() void OgreProjectorListener::RemoveDecalFromInvisibleMaterials( std::unordered_set &_matSet) { + GZ_PROFILE("OgreProjectorListener::RemoveDecalFromInvisibleMaterials"); std::string invisibleMaterial; std::unordered_set::iterator visibleMaterial; @@ -484,6 +489,7 @@ void OgreProjectorListener::RemoveDecalFromInvisibleMaterials( void OgreProjectorListener::AddDecalToMaterials( std::unordered_set &_matSet) { + GZ_PROFILE("OgreProjectorListener::AddDecalToMaterials"); this->RemoveDecalFromInvisibleMaterials(_matSet); if (!_matSet.empty()) @@ -503,6 +509,7 @@ void OgreProjectorListener::AddDecalToMaterials( void OgreProjectorListener::AddDecalToMaterial( const std::string &_matName) { + GZ_PROFILE("OgreProjectorListener::AddDecalToMaterial"); if (this->projectorTargets.find(_matName) != this->projectorTargets.end()) { return; @@ -544,6 +551,7 @@ void OgreProjectorListener::AddDecalToMaterial( ///////////////////////////////////////////////// void OgreProjectorListener::RemoveDecalFromMaterials() { + GZ_PROFILE("OgreProjectorListener::RemoveDecalFromMaterials"); for (auto it = this->projectorTargets.begin(); it != this->projectorTargets.end(); ++it) { @@ -558,6 +566,7 @@ void OgreProjectorListener::RemoveDecalFromMaterials() void OgreProjectorListener::RemoveDecalFromMaterial( const std::string &_matName) { + GZ_PROFILE("OgreProjectorListener::RemoveDecalFromMaterial"); auto projectorTargetIt = this->projectorTargets.find(_matName); if (projectorTargetIt != this->projectorTargets.end()) { @@ -570,6 +579,7 @@ void OgreProjectorListener::RemoveDecalFromMaterial( ///////////////////////////////////////////////// void OgreProjector::UpdateCameraListener() { + GZ_PROFILE("OgreProjector::UpdateCameraListener"); // if projector does not have custom visibility flags // project the texture onto entity's original material. It'll be visible // to all cameras @@ -659,6 +669,7 @@ void OgreProjectorListener::UpdateVisibleMaterials() void OgreProjectorListener::preRenderTargetUpdate( const Ogre::RenderTargetEvent &_evt) { + GZ_PROFILE("OgreProjectorListener::preRenderTargetUpdate"); if (this->defaultScheme.empty()) { this->defaultScheme = @@ -692,6 +703,7 @@ Ogre::Technique *OgreProjectorListener::handleSchemeNotFound( Ogre::Material *_originalMaterial, uint16_t /*_lodIndex*/, const Ogre::Renderable *_rend) { + GZ_PROFILE("OgreProjectorListener::handleSchemeNotFound"); if (_schemeName != "projector") return nullptr; diff --git a/ogre/src/OgreRTShaderSystem.cc b/ogre/src/OgreRTShaderSystem.cc index 932f2fede..5bb1e1689 100644 --- a/ogre/src/OgreRTShaderSystem.cc +++ b/ogre/src/OgreRTShaderSystem.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include "gz/rendering/InstallationDirectories.hh" @@ -192,6 +193,7 @@ void OgreRTShaderSystem::AddScene(OgreScenePtr _scene) ////////////////////////////////////////////////// void OgreRTShaderSystem::RemoveScene(OgreScenePtr _scene) { + GZ_PROFILE("OgreRTShaderSystem::RemoveScene"); if (!this->dataPtr->initialized) return; @@ -243,6 +245,7 @@ void OgreRTShaderSystem::AttachEntity(OgreSubMesh *_subMesh) ////////////////////////////////////////////////// void OgreRTShaderSystem::DetachEntity(OgreSubMesh *_subMesh) { + GZ_PROFILE("OgreRTShaderSystem::DetachEntity"); if (!this->dataPtr->initialized) return; @@ -296,6 +299,7 @@ void OgreRTShaderSystem::UpdateShaders() ////////////////////////////////////////////////// void OgreRTShaderSystem::RemoveShaders(OgreSubMesh *_subMesh) { + GZ_PROFILE("OgreRTShaderSystem::RemoveShaders"); if (!this->dataPtr->initialized) return; @@ -362,6 +366,7 @@ void OgreRTShaderSystem::RemoveShaders(OgreSubMesh *_subMesh) ////////////////////////////////////////////////// void OgreRTShaderSystem::GenerateShaders(OgreSubMesh *subMesh) { + GZ_PROFILE("OgreRTShaderSystem::GenerateShaders"); if (!this->dataPtr->initialized) { return; @@ -485,6 +490,7 @@ void OgreRTShaderSystem::GenerateShaders(OgreSubMesh *subMesh) bool OgreRTShaderSystem::Paths(std::string &coreLibsPath, std::string &cachePath) { + GZ_PROFILE("OgreRTShaderSystem::Paths"); const char *env = std::getenv("GZ_RENDERING_RESOURCE_PATH"); std::string resourcePath = (env) ? std::string(env) : @@ -544,6 +550,7 @@ bool OgreRTShaderSystem::Paths(std::string &coreLibsPath, ////////////////////////////////////////////////// void OgreRTShaderSystem::RemoveShadows(OgreScenePtr _scene) { + GZ_PROFILE("OgreRTShaderSystem::RemoveShadows"); if (!this->dataPtr->initialized || !this->dataPtr->shadowsApplied) return; @@ -570,6 +577,7 @@ void OgreRTShaderSystem::RemoveShadows(OgreScenePtr _scene) ////////////////////////////////////////////////// void OgreRTShaderSystem::ApplyShadows(OgreScenePtr _scene) { + GZ_PROFILE("OgreRTShaderSystem::ApplyShadows"); if (!this->dataPtr->initialized || this->dataPtr->shadowsApplied) return; @@ -687,6 +695,7 @@ Ogre::PSSMShadowCameraSetup ///////////////////////////////////////////////// void OgreRTShaderSystem::Update() { + GZ_PROFILE("OgreRTShaderSystem::Update"); if (!this->dataPtr->initialized) return; diff --git a/ogre/src/OgreRayQuery.cc b/ogre/src/OgreRayQuery.cc index 0818026bf..fa68398a4 100644 --- a/ogre/src/OgreRayQuery.cc +++ b/ogre/src/OgreRayQuery.cc @@ -18,6 +18,7 @@ #include #include +#include #include "gz/rendering/ogre/OgreIncludes.hh" #include "gz/rendering/ogre/OgreCamera.hh" @@ -53,6 +54,7 @@ OgreRayQuery::~OgreRayQuery() void OgreRayQuery::SetFromCamera(const CameraPtr &_camera, const math::Vector2d &_coord) { + GZ_PROFILE("OgreRayQuery::SetFromCamera"); // convert to nomalized screen pos for ogre math::Vector2d screenPos((_coord.X() + 1.0) / 2.0, (_coord.Y() - 1.0) / -2.0); @@ -76,6 +78,7 @@ void OgreRayQuery::SetFromCamera(const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord) { + GZ_PROFILE("OgreRayQuery::SetFromCamera_2"); // convert to nomalized screen pos for ogre math::Vector2d screenPos((_coord.X() + 1.0) / 2.0, (_coord.Y() - 1.0) / -2.0); @@ -116,6 +119,7 @@ void OgreRayQuery::SetFromCamera(const WideAngleCameraPtr &_camera, ////////////////////////////////////////////////// RayQueryResult OgreRayQuery::ClosestPoint(bool /*_forceSceneUpdate*/) // NOLINT { + GZ_PROFILE("OgreRayQuery::ClosestPoint"); RayQueryResult result; OgreScenePtr ogreScene = std::dynamic_pointer_cast(this->Scene()); if (!ogreScene) @@ -213,6 +217,7 @@ void OgreRayQuery::MeshInformation(const Ogre::Mesh *_mesh, const math::Quaterniond &_orient, const math::Vector3d &_scale) { + GZ_PROFILE("OgreRayQuery::MeshInformation"); bool added_shared = false; size_t current_offset = 0; size_t next_offset = 0; diff --git a/ogre/src/OgreRenderTarget.cc b/ogre/src/OgreRenderTarget.cc index f004e07e2..384569e18 100644 --- a/ogre/src/OgreRenderTarget.cc +++ b/ogre/src/OgreRenderTarget.cc @@ -34,6 +34,7 @@ #include +#include #include "gz/rendering/Material.hh" @@ -71,6 +72,7 @@ OgreRenderTarget::~OgreRenderTarget() ////////////////////////////////////////////////// void OgreRenderTarget::Copy(Image &_image) const { + GZ_PROFILE("OgreRenderTarget::Copy"); if (nullptr == this->RenderTarget()) return; @@ -150,6 +152,7 @@ void OgreRenderTarget::SetAntiAliasing(unsigned int _aa) ////////////////////////////////////////////////// void OgreRenderTarget::PreRender() { + GZ_PROFILE("OgreRenderTarget::PreRender"); BaseRenderTarget::PreRender(); this->UpdateBackgroundColor(); @@ -170,6 +173,7 @@ void OgreRenderTarget::PostRender() ////////////////////////////////////////////////// void OgreRenderTarget::Render() { + GZ_PROFILE("OgreRenderTarget::Render"); if (nullptr == this->RenderTarget()) return; @@ -205,6 +209,7 @@ void OgreRenderTarget::RebuildImpl() ////////////////////////////////////////////////// void OgreRenderTarget::RebuildViewport() { + GZ_PROFILE("OgreRenderTarget::RebuildViewport"); if (nullptr == this->RenderTarget()) return; @@ -235,6 +240,7 @@ void OgreRenderTarget::SetMaterial(MaterialPtr _material) ////////////////////////////////////////////////// void OgreRenderTarget::RebuildMaterial() { + GZ_PROFILE("OgreRenderTarget::RebuildMaterial"); if (this->material && this->RenderTarget()) { OgreMaterial *ogreMaterial = dynamic_cast( @@ -250,6 +256,7 @@ void OgreRenderTarget::RebuildMaterial() ////////////////////////////////////////////////// void OgreRenderTarget::UpdateRenderPassChain() { + GZ_PROFILE("OgreRenderTarget::UpdateRenderPassChain"); if (!this->renderPassDirty) return; @@ -359,6 +366,7 @@ void OgreRenderTexture::RebuildTarget() ////////////////////////////////////////////////// void OgreRenderTexture::DestroyTarget() { + GZ_PROFILE("OgreRenderTexture::DestroyTarget"); if (nullptr == this->ogreTexture) return; @@ -384,6 +392,7 @@ void OgreRenderTexture::DestroyTarget() ////////////////////////////////////////////////// void OgreRenderTexture::BuildTarget() { + GZ_PROFILE("OgreRenderTexture::BuildTarget"); Ogre::TextureManager &manager = Ogre::TextureManager::getSingleton(); Ogre::PixelFormat ogreFormat; if ((this->format == PF_BAYER_RGGB8) || @@ -440,18 +449,21 @@ unsigned int OgreRenderTexture::GLId() const ////////////////////////////////////////////////// void OgreRenderTexture::PreRender() { + GZ_PROFILE("OgreRenderTexture::PreRender"); OgreRenderTarget::PreRender(); } ////////////////////////////////////////////////// void OgreRenderTexture::PostRender() { + GZ_PROFILE("OgreRenderTexture::PostRender"); OgreRenderTarget::PostRender(); } ////////////////////////////////////////////////// void OgreRenderTexture::Buffer(float *_buffer) { + GZ_PROFILE("OgreRenderTexture::Buffer"); Ogre::RenderTarget *ogreRenderTarget = this->RenderTarget(); if (nullptr == ogreRenderTarget) diff --git a/ogre/src/OgreScene.cc b/ogre/src/OgreScene.cc index 587cc154f..5d8926627 100644 --- a/ogre/src/OgreScene.cc +++ b/ogre/src/OgreScene.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/base/SceneExt.hh" @@ -192,6 +193,7 @@ void OgreScene::SetAmbientLight(const math::Color &_color) ////////////////////////////////////////////////// void OgreScene::SetBackgroundColor(const math::Color &_color) { + GZ_PROFILE("OgreScene::SetBackgroundColor"); this->backgroundColor = _color; // TODO(anyone): clean up code @@ -209,6 +211,7 @@ void OgreScene::SetBackgroundColor(const math::Color &_color) void OgreScene::SetGradientBackgroundColor( const std::array &_colors) { + GZ_PROFILE("OgreScene::SetGradientBackgroundColor"); ColoredRectangle2D* rect = nullptr; Ogre::SceneNode *backgroundNodePtr = nullptr; @@ -292,6 +295,7 @@ void OgreScene::RemoveGradientBackgroundColor() ////////////////////////////////////////////////// void OgreScene::PreRender() { + GZ_PROFILE("OgreScene::PreRender"); BaseScene::PreRender(); OgreRTShaderSystem::Instance()->Update(); } diff --git a/ogre/src/OgreSelectionBuffer.cc b/ogre/src/OgreSelectionBuffer.cc index e1c580776..10acce74d 100644 --- a/ogre/src/OgreSelectionBuffer.cc +++ b/ogre/src/OgreSelectionBuffer.cc @@ -19,6 +19,7 @@ #include #include "gz/common/Console.hh" +#include #include "gz/rendering/RenderTypes.hh" #include "gz/rendering/ogre/OgreIncludes.hh" #include "gz/rendering/ogre/OgreMaterialSwitcher.hh" @@ -90,6 +91,7 @@ OgreSelectionBuffer::~OgreSelectionBuffer() ///////////////////////////////////////////////// void OgreSelectionBuffer::Update() { + GZ_PROFILE("OgreSelectionBuffer::Update"); if (!this->dataPtr->renderTexture) return; @@ -133,6 +135,7 @@ void OgreSelectionBuffer::DeleteRTTBuffer() ///////////////////////////////////////////////// void OgreSelectionBuffer::CreateRTTBuffer() { + GZ_PROFILE("OgreSelectionBuffer::CreateRTTBuffer"); try { // 1x1 pixel buffer @@ -179,6 +182,7 @@ void OgreSelectionBuffer::CreateRTTBuffer() ///////////////////////////////////////////////// Ogre::Entity *OgreSelectionBuffer::OnSelectionClick(const int _x, const int _y) { + GZ_PROFILE("OgreSelectionBuffer::OnSelectionClick"); if (!this->dataPtr->renderTexture) return nullptr; @@ -258,6 +262,7 @@ Ogre::Entity *OgreSelectionBuffer::OnSelectionClick(const int _x, const int _y) ///////////////////////////////////////////////// void OgreSelectionBuffer::CreateRTTOverlays() { + GZ_PROFILE("OgreSelectionBuffer::CreateRTTOverlays"); Ogre::OverlayManager *mgr = Ogre::OverlayManager::getSingletonPtr(); if (mgr && mgr->getByName("SelectionDebugOverlay")) diff --git a/ogre/src/OgreText.cc b/ogre/src/OgreText.cc index 0be8624e3..6db183224 100644 --- a/ogre/src/OgreText.cc +++ b/ogre/src/OgreText.cc @@ -20,8 +20,9 @@ #include #endif -#include #include +#include +#include #include "gz/rendering/ogre/OgreMaterial.hh" #include "gz/rendering/ogre/OgreScene.hh" @@ -343,6 +344,7 @@ void OgreMovableText::UpdateFont() ////////////////////////////////////////////////// void OgreMovableText::SetFontNameImpl(const std::string &_newFontName) { + GZ_PROFILE("OgreMovableText::SetFontNameImpl"); if ((Ogre::MaterialManager::getSingletonPtr()->resourceExists( this->mName + "Material"))) { @@ -402,6 +404,7 @@ void OgreMovableText::SetFontNameImpl(const std::string &_newFontName) ////////////////////////////////////////////////// void OgreMovableText::SetupGeometry() { + GZ_PROFILE("OgreMovableText::SetupGeometry"); GZ_ASSERT(this->font, "font class member is null"); #if OGRE_VERSION_LT_1_11_0 GZ_ASSERT(!this->ogreMaterial.isNull(), "ogreMaterial class member is null"); @@ -784,6 +787,7 @@ void OgreMovableText::UpdateMaterial() ////////////////////////////////////////////////// void OgreMovableText::Update() { + GZ_PROFILE("OgreMovableText::Update"); if (this->fontDirty) this->UpdateFont(); if (this->textDirty) @@ -810,6 +814,7 @@ const Ogre::String &OgreMovableText::getMovableType() const ////////////////////////////////////////////////// void OgreMovableText::getWorldTransforms(Ogre::Matrix4 *_xform) const { + GZ_PROFILE("OgreMovableText::getWorldTransforms"); if (this->isVisible() && this->camera) { Ogre::Matrix3 rot3x3, scale3x3 = Ogre::Matrix3::IDENTITY; @@ -924,6 +929,7 @@ void OgreText::Init() ////////////////////////////////////////////////// void OgreText::PreRender() { + GZ_PROFILE("OgreText::PreRender"); this->dataPtr->ogreObj->Update(); } diff --git a/ogre/src/OgreThermalCamera.cc b/ogre/src/OgreThermalCamera.cc index 82215d96b..a2ae97d1a 100644 --- a/ogre/src/OgreThermalCamera.cc +++ b/ogre/src/OgreThermalCamera.cc @@ -26,6 +26,7 @@ #include #include +#include #include #include "gz/rendering/ShaderParams.hh" #include "gz/rendering/ogre/OgreThermalCamera.hh" @@ -185,6 +186,7 @@ Ogre::Technique *OgreThermalCameraMaterialSwitcher::handleSchemeNotFound( Ogre::Material * /*_originalMaterial*/, uint16_t /*_lodIndex*/, const Ogre::Renderable *_rend) { + GZ_PROFILE("OgreThermalCameraMaterialSwitcher::handleSchemeNotFound"); if (_schemeName != this->schemeName) return nullptr; @@ -391,6 +393,7 @@ void OgreThermalCamera::CreateCamera() ///////////////////////////////////////////////// void OgreThermalCamera::CreateThermalTexture() { + GZ_PROFILE("OgreThermalCamera::CreateThermalTexture"); if (this->ogreCamera == nullptr) { gzerr << "Ogre camera cannot be created" << std::endl; @@ -519,6 +522,7 @@ void OgreThermalCamera::DestroyRenderTexture() ////////////////////////////////////////////////// void OgreThermalCamera::PreRender() { + GZ_PROFILE("OgreThermalCamera::PreRender"); BaseCamera::PreRender(); if (!this->dataPtr->ogreThermalTexture) this->CreateThermalTexture(); @@ -527,6 +531,7 @@ void OgreThermalCamera::PreRender() ////////////////////////////////////////////////// void OgreThermalCamera::Render() { + GZ_PROFILE("OgreThermalCamera::Render"); // render heat source Ogre::RenderTarget *heatRt = this->dataPtr->ogreHeatSourceTexture->getBuffer()->getRenderTarget(); @@ -541,6 +546,7 @@ void OgreThermalCamera::Render() ////////////////////////////////////////////////// void OgreThermalCamera::PostRender() { + GZ_PROFILE("OgreThermalCamera::PostRender"); if (this->dataPtr->newThermalFrame.ConnectionCount() <= 0u) return; diff --git a/ogre/src/OgreVisual.cc b/ogre/src/OgreVisual.cc index 9fc5fb287..f1e5a2d23 100644 --- a/ogre/src/OgreVisual.cc +++ b/ogre/src/OgreVisual.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre/OgreVisual.hh" #include "gz/rendering/ogre/OgreWireBox.hh" @@ -48,6 +49,7 @@ OgreVisual::~OgreVisual() ////////////////////////////////////////////////// void OgreVisual::SetWireframe(bool _show) { + GZ_PROFILE("OgreVisual::SetWireframe"); if (this->dataPtr->wireframe == _show) return; @@ -127,6 +129,7 @@ GeometryStorePtr OgreVisual::Geometries() const ////////////////////////////////////////////////// bool OgreVisual::AttachGeometry(GeometryPtr _geometry) { + GZ_PROFILE("OgreVisual::AttachGeometry"); if (!_geometry) { gzerr << "Cannot attach null geometry." << std::endl; @@ -169,6 +172,7 @@ bool OgreVisual::AttachGeometry(GeometryPtr _geometry) ////////////////////////////////////////////////// bool OgreVisual::DetachGeometry(GeometryPtr _geometry) { + GZ_PROFILE("OgreVisual::DetachGeometry"); if (!this->ogreNode) { gzerr << "Cannot detach geometry, null Ogre node." << std::endl; @@ -219,6 +223,7 @@ void OgreVisual::BoundsHelper(gz::math::AxisAlignedBox &_box, void OgreVisual::BoundsHelper(gz::math::AxisAlignedBox &_box, bool _local, const gz::math::Pose3d &_pose) const { + GZ_PROFILE("OgreVisual::BoundsHelper"); if (!this->ogreNode) return; diff --git a/ogre/src/OgreWideAngleCamera.cc b/ogre/src/OgreWideAngleCamera.cc index 4048304cd..11eb55fc2 100644 --- a/ogre/src/OgreWideAngleCamera.cc +++ b/ogre/src/OgreWideAngleCamera.cc @@ -32,10 +32,11 @@ #endif #endif +#include + #include "gz/rendering/CameraLens.hh" #include "gz/rendering/ogre/OgreWideAngleCamera.hh" - #include "gz/rendering/ogre/OgreConversions.hh" #include "gz/rendering/ogre/OgreRenderEngine.hh" #include "gz/rendering/ogre/OgreRenderPass.hh" @@ -159,6 +160,7 @@ void OgreWideAngleCamera::DestroyRenderTexture() ////////////////////////////////////////////////// void OgreWideAngleCamera::PreRender() { + GZ_PROFILE("OgreWireBox::PreRender"); BaseCamera::PreRender(); if (!this->dataPtr->ogreRenderTexture) this->CreateWideAngleTexture(); @@ -397,6 +399,7 @@ void OgreWideAngleCamera::CreateEnvCameras() ////////////////////////////////////////////////// bool OgreWideAngleCamera::SetBackgroundColor(const math::Color &_color) { + GZ_PROFILE("OgreWideAngleCamera::SetBackgroundColor"); bool retVal = true; Ogre::ColourValue clr = OgreConversions::Convert(_color); if (this->dataPtr->ogreCamera->getViewport()) @@ -424,6 +427,7 @@ bool OgreWideAngleCamera::SetBackgroundColor(const math::Color &_color) ////////////////////////////////////////////////// void OgreWideAngleCamera::CreateWideAngleTexture() { + GZ_PROFILE("OgreWideAngleCamera::CreateWideAngleTexture"); if (this->dataPtr->ogreCamera == nullptr) { gzerr << "Ogre camera cannot be created" << std::endl; @@ -539,6 +543,7 @@ void OgreWideAngleCamera::CreateWideAngleTexture() ////////////////////////////////////////////////// void OgreWideAngleCamera::UpdateRenderPassChain() { + GZ_PROFILE("OgreWideAngleCamera::UpdateRenderPassChain"); if (!this->dataPtr->renderPassDirty) return; @@ -562,6 +567,7 @@ void OgreWideAngleCamera::UpdateRenderPassChain() ////////////////////////////////////////////////// void OgreWideAngleCamera::Render() { + GZ_PROFILE("OgreWideAngleCamera::Render"); for (unsigned int i = 0u; i < this->dataPtr->kEnvCameraCount; ++i) { this->dataPtr->envRenderTargets[i]->update(); @@ -579,6 +585,7 @@ void OgreWideAngleCamera::Render() ////////////////////////////////////////////////// void OgreWideAngleCamera::Copy(Image &_image) const { + GZ_PROFILE("OgreWideAngleCamera::Copy"); const unsigned int width = this->ImageWidth(); const unsigned int height = this->ImageHeight(); @@ -601,6 +608,7 @@ void OgreWideAngleCamera::Copy(Image &_image) const void OgreWideAngleCamera::notifyMaterialRender(Ogre::uint32 /*_pass_id*/, Ogre::MaterialPtr &_material) { + GZ_PROFILE("OgreWideAngleCamera::notifyMaterialRender"); if (_material.isNull()) return; @@ -628,6 +636,7 @@ void OgreWideAngleCamera::notifyMaterialRender(Ogre::uint32 /*_pass_id*/, void OgreWideAngleCamera::SetUniformVariables(Ogre::Pass *_pass, float _ratio, float _hfov) { + GZ_PROFILE("OgreWideAngleCamera::SetUniformVariables"); Ogre::GpuProgramParametersSharedPtr uniforms = _pass->getFragmentProgramParameters(); @@ -673,6 +682,7 @@ void OgreWideAngleCamera::SetUniformVariables(Ogre::Pass *_pass, math::Vector3d OgreWideAngleCamera::Project3d( const math::Vector3d &_pt) const { + GZ_PROFILE("OgreWideAngleCamera::Project3d"); // project onto cubemap face then onto gz::math::Vector3d screenPos; // loop through all env cameras can find the one that sees the 3d world point @@ -779,6 +789,7 @@ std::vector OgreWideAngleCamera::OgreEnvCameras() const ////////////////////////////////////////////////// void OgreWideAngleCamera::PostRender() { + GZ_PROFILE("OgreWideAngleCamera::PostRender"); if (this->dataPtr->newImageFrame.ConnectionCount() <= 0u) return; diff --git a/ogre/src/OgreWireBox.cc b/ogre/src/OgreWireBox.cc index c071af58d..8664c3e23 100644 --- a/ogre/src/OgreWireBox.cc +++ b/ogre/src/OgreWireBox.cc @@ -15,6 +15,7 @@ * */ #include +#include #include "gz/rendering/ogre/OgreWireBox.hh" #include "gz/rendering/ogre/OgreMaterial.hh" @@ -56,6 +57,7 @@ OgreWireBox::~OgreWireBox() ////////////////////////////////////////////////// void OgreWireBox::PreRender() { + GZ_PROFILE("OgreWireBox::PreRender"); if (this->wireBoxDirty) { this->Create(); diff --git a/ogre2/src/Ogre2BoundingBoxCamera.cc b/ogre2/src/Ogre2BoundingBoxCamera.cc index 109ac9e60..87d43de60 100644 --- a/ogre2/src/Ogre2BoundingBoxCamera.cc +++ b/ogre2/src/Ogre2BoundingBoxCamera.cc @@ -27,6 +27,7 @@ #endif #include +#include #include #include @@ -212,6 +213,7 @@ std::pair Ogre2BoundingBoxCameraPrivate::ClipToViewPort(const math::Vector4d &_bounds, const math::Vector2d &_p0, const math::Vector2d &_p1) const { + GZ_PROFILE("Ogre2BoundingBoxCameraPrivate::ClipToViewPort"); const auto xmin = _bounds[0]; const auto ymin = _bounds[1]; const auto xmax = _bounds[2]; @@ -462,6 +464,7 @@ void Ogre2BoundingBoxCamera::Destroy() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::PreRender() { + GZ_PROFILE("Ogre2BoundingBoxCamera::PreRender"); if (!this->dataPtr->ogreRenderTexture) this->CreateBoundingBoxTexture(); @@ -471,6 +474,7 @@ void Ogre2BoundingBoxCamera::PreRender() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::CreateBoundingBoxTexture() { + GZ_PROFILE("Ogre2BoundingBoxCamera::CreateBoundingBoxTexture"); // Camera Parameters this->dataPtr->ogreCamera->setNearClipDistance(this->NearClipPlane()); this->dataPtr->ogreCamera->setFarClipDistance(this->FarClipPlane()); @@ -545,6 +549,7 @@ void Ogre2BoundingBoxCamera::CreateBoundingBoxTexture() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::Render() { + GZ_PROFILE("Ogre2BoundingBoxCamera::Render"); if (!this->scene) { gzerr << "Null scene." << std::endl; @@ -574,6 +579,7 @@ void Ogre2BoundingBoxCamera::Render() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::PostRender() { + GZ_PROFILE("Ogre2BoundingBoxCamera::PostRender"); // return if no one is listening to the new frame if (this->dataPtr->newBoundingBoxes.ConnectionCount() == 0) return; @@ -642,6 +648,7 @@ void Ogre2BoundingBoxCamera::PostRender() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::MarkVisibleBoxes() { + GZ_PROFILE("Ogre2BoundingBoxCamera::MarkVisibleBoxes"); if (!this->dataPtr->buffer) { gzerr << "Null buffer" << std::endl; @@ -681,6 +688,7 @@ void Ogre2BoundingBoxCameraPrivate::MeshVertices( const std::vector &_ogreIds, std::vector &_vertices) { + GZ_PROFILE("Ogre2BoundingBoxCameraPrivate::MeshVertices"); auto viewMatrix = this->ogreCamera->getViewMatrix(); for (const auto &ogreId : _ogreIds) @@ -762,6 +770,7 @@ void Ogre2BoundingBoxCameraPrivate::MeshVertices( ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::MergeMultiLinksModels3D() { + GZ_PROFILE("Ogre2BoundingBoxCamera::MergeMultiLinksModels3D"); // Combine the boxes with the same parent name together to merge them for (const auto &box : this->dataPtr->boundingboxes) { @@ -812,6 +821,7 @@ void Ogre2BoundingBoxCamera::MergeMultiLinksModels3D() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::MergeMultiLinksModels2D() { + GZ_PROFILE("Ogre2BoundingBoxCamera::MergeMultiLinksModels2D"); // Combine the boxes with the same parent name together to merge them for (const auto &box : this->dataPtr->boundingboxes) { @@ -872,6 +882,7 @@ BoundingBox Ogre2BoundingBoxCameraPrivate::MergeBoxes2D( ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::BoundingBoxes3D() { + GZ_PROFILE("Ogre2BoundingBoxCamera::BoundingBoxes3D"); auto viewMatrix = this->dataPtr->ogreCamera->getViewMatrix(); // used to filter the hidden boxes @@ -957,6 +968,7 @@ void Ogre2BoundingBoxCamera::BoundingBoxes3D() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::VisibleBoundingBoxes() { + GZ_PROFILE("Ogre2BoundingBoxCamera::VisibleBoundingBoxes"); if (!this->dataPtr->buffer) { gzerr << "Null buffer" << std::endl; @@ -1045,6 +1057,7 @@ void Ogre2BoundingBoxCamera::VisibleBoundingBoxes() ///////////////////////////////////////////////// void Ogre2BoundingBoxCamera::FullBoundingBoxes() { + GZ_PROFILE("Ogre2BoundingBoxCamera::FullBoundingBoxes"); // used to filter the hidden boxes this->MarkVisibleBoxes(); @@ -1147,6 +1160,7 @@ void Ogre2BoundingBoxCamera::MeshMinimalBox( const Ogre::Vector3 &_scale ) { + GZ_PROFILE("Ogre2BoundingBoxCamera::MeshMinimalBox"); _minVertex.x = std::numeric_limits::max(); _minVertex.y = std::numeric_limits::max(); _minVertex.z = std::numeric_limits::max(); @@ -1227,6 +1241,7 @@ void Ogre2BoundingBoxCamera::DrawLine(unsigned char *_data, const math::Vector2i &_point1, const math::Vector2i &_point2, const math::Color &_color) const { + GZ_PROFILE("Ogre2BoundingBoxCamera::DrawLine"); int x0, y0, x1, y1; // Check if the line is close to a vertical or horizontal line @@ -1329,6 +1344,7 @@ void Ogre2BoundingBoxCamera::DrawLine(unsigned char *_data, void Ogre2BoundingBoxCamera::DrawBoundingBox(unsigned char *_data, const math::Color &_color, const BoundingBox &_box) const { + GZ_PROFILE("Ogre2BoundingBoxCamera::DrawBoundingBox"); // 3D box if (this->Type() == BoundingBoxType::BBT_BOX3D) { diff --git a/ogre2/src/Ogre2BoundingBoxMaterialSwitcher.cc b/ogre2/src/Ogre2BoundingBoxMaterialSwitcher.cc index da02a8bac..1508bcaa1 100644 --- a/ogre2/src/Ogre2BoundingBoxMaterialSwitcher.cc +++ b/ogre2/src/Ogre2BoundingBoxMaterialSwitcher.cc @@ -19,6 +19,8 @@ #include "Ogre2BoundingBoxMaterialSwitcher.hh" +#include + #include "gz/rendering/ogre2/Ogre2Scene.hh" #include "gz/rendering/ogre2/Ogre2Visual.hh" @@ -78,6 +80,7 @@ Ogre2BoundingBoxMaterialSwitcher::~Ogre2BoundingBoxMaterialSwitcher() VisualPtr Ogre2BoundingBoxMaterialSwitcher::TopLevelModelVisual( VisualPtr _visual) const { + GZ_PROFILE("Ogre2BoundingBoxMaterialSwitcher::TopLevelModelVisual"); if (!_visual) return _visual; VisualPtr p = _visual; @@ -90,6 +93,7 @@ VisualPtr Ogre2BoundingBoxMaterialSwitcher::TopLevelModelVisual( void Ogre2BoundingBoxMaterialSwitcher::cameraPreRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2BoundingBoxMaterialSwitcher::cameraPreRenderScene"); this->datablockMap.clear(); auto itor = this->scene->OgreSceneManager()->getMovableObjectIterator( Ogre::ItemFactory::FACTORY_TYPE_NAME); @@ -168,6 +172,7 @@ void Ogre2BoundingBoxMaterialSwitcher::cameraPreRenderScene( void Ogre2BoundingBoxMaterialSwitcher::cameraPostRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2BoundingBoxMaterialSwitcher::cameraPostRenderScene"); // restore the original material for (auto &it : this->datablockMap) { diff --git a/ogre2/src/Ogre2COMVisual.cc b/ogre2/src/Ogre2COMVisual.cc index 03d3d67b9..3b1f3b13e 100644 --- a/ogre2/src/Ogre2COMVisual.cc +++ b/ogre2/src/Ogre2COMVisual.cc @@ -15,6 +15,8 @@ * */ +#include + #include "gz/rendering/ogre2/Ogre2COMVisual.hh" #include "gz/rendering/ogre2/Ogre2DynamicRenderable.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -56,6 +58,7 @@ Ogre2COMVisual::~Ogre2COMVisual() ////////////////////////////////////////////////// void Ogre2COMVisual::PreRender() { + GZ_PROFILE("Ogre2COMVisual::PreRender"); if (this->HasParent() && this->parentName.empty()) this->parentName = this->Parent()->Name(); diff --git a/ogre2/src/Ogre2Camera.cc b/ogre2/src/Ogre2Camera.cc index 2ff1c5758..5b3c0c275 100644 --- a/ogre2/src/Ogre2Camera.cc +++ b/ogre2/src/Ogre2Camera.cc @@ -15,6 +15,8 @@ * */ +#include + #include "gz/rendering/ogre2/Ogre2Camera.hh" #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2RenderTarget.hh" @@ -156,6 +158,7 @@ void Ogre2Camera::SetMaterial(const MaterialPtr &_material) ////////////////////////////////////////////////// void Ogre2Camera::Render() { + GZ_PROFILE("Ogre2Camera::Render"); this->renderTexture->Render(); } @@ -302,6 +305,7 @@ Ogre2SelectionBuffer *Ogre2Camera::SelectionBuffer() const ////////////////////////////////////////////////// VisualPtr Ogre2Camera::VisualAt(const math::Vector2i &_mousePos) { + GZ_PROFILE("Ogre2Camera::VisualAt"); VisualPtr result; if (!this->selectionBuffer) diff --git a/ogre2/src/Ogre2Capsule.cc b/ogre2/src/Ogre2Capsule.cc index 1ee7adfee..889bffd0e 100644 --- a/ogre2/src/Ogre2Capsule.cc +++ b/ogre2/src/Ogre2Capsule.cc @@ -19,6 +19,7 @@ #include #include +#include #include "gz/rendering/ogre2/Ogre2Capsule.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -59,6 +60,7 @@ Ogre::MovableObject *Ogre2Capsule::OgreObject() const ////////////////////////////////////////////////// void Ogre2Capsule::PreRender() { + GZ_PROFILE("Ogre2Capsule::PreRender"); if (this->capsuleDirty) { this->Update(); @@ -91,6 +93,7 @@ void Ogre2Capsule::Destroy() ////////////////////////////////////////////////// void Ogre2Capsule::Update() { + GZ_PROFILE("Ogre2Capsule::Update"); common::MeshManager *meshMgr = common::MeshManager::Instance(); std::string capsuleMeshName = "capsule_mesh"; capsuleMeshName += "_" + std::to_string(this->radius) diff --git a/ogre2/src/Ogre2DepthCamera.cc b/ogre2/src/Ogre2DepthCamera.cc index f40a41ec9..4fac49750 100644 --- a/ogre2/src/Ogre2DepthCamera.cc +++ b/ogre2/src/Ogre2DepthCamera.cc @@ -28,6 +28,8 @@ #include #include +#include + #include "gz/rendering/RenderTypes.hh" #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2DepthCamera.hh" @@ -182,6 +184,7 @@ using namespace rendering; ////////////////////////////////////////////////// void Ogre2DepthGaussianNoisePass::PreRender(const CameraPtr &/*_camera*/) { + GZ_PROFILE("Ogre2DepthGaussianNoisePass::PreRender"); // This function is similar to Ogre2GaussianNoisePass but duplicated here // for Ogre2DepthCamera @@ -434,6 +437,7 @@ void Ogre2DepthCamera::CreateRenderTexture() ///////////////////////////////////////////////////////// void Ogre2DepthCamera::CreateDepthTexture() { + GZ_PROFILE("Ogre2DepthCamera::CreateDepthTexture"); // set aspect ratio and fov const double aspectRatio = this->AspectRatio(); const double angle = this->HFOV().Radian(); @@ -1029,6 +1033,7 @@ void Ogre2DepthCamera::SetProjectionMatrix(const math::Matrix4d &_matrix) ////////////////////////////////////////////////// void Ogre2DepthCamera::Render() { + GZ_PROFILE("Ogre2DepthCamera::Render"); // Our shaders rely on clamped values so enable it for this sensor // // TODO(anyone): Matias N. Goldberg (dark_sylinc) insists this is a hack @@ -1057,6 +1062,7 @@ void Ogre2DepthCamera::Render() ////////////////////////////////////////////////// void Ogre2DepthCamera::PreRender() { + GZ_PROFILE("Ogre2DepthCamera::PreRender"); if (!this->dataPtr->ogreDepthTexture[0]) this->CreateDepthTexture(); @@ -1155,6 +1161,7 @@ void Ogre2DepthCamera::PreRender() ////////////////////////////////////////////////// void Ogre2DepthCamera::PostRender() { + GZ_PROFILE("Ogre2DepthCamera::PostRender"); unsigned int width = this->ImageWidth(); unsigned int height = this->ImageHeight(); diff --git a/ogre2/src/Ogre2DynamicRenderable.cc b/ogre2/src/Ogre2DynamicRenderable.cc index 644919beb..0634d5630 100644 --- a/ogre2/src/Ogre2DynamicRenderable.cc +++ b/ogre2/src/Ogre2DynamicRenderable.cc @@ -27,6 +27,8 @@ #endif #include "gz/common/Console.hh" +#include + #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2DynamicRenderable.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -213,6 +215,7 @@ void Ogre2DynamicRenderable::CreateDynamicMesh() ////////////////////////////////////////////////// void Ogre2DynamicRenderable::UpdateBuffer() { + GZ_PROFILE("Ogre2DynamicRenderable::UpdateBuffer"); if (!this->dataPtr->dirty) return; @@ -573,6 +576,7 @@ void Ogre2DynamicRenderable::SetMaterial(MaterialPtr _material, bool _unique) void Ogre2DynamicRenderable::GenerateNormals(Ogre::OperationType _opType, const std::vector &_vertices, float *_vbuffer) { + GZ_PROFILE("Ogre2DynamicRenderable::GenerateNormals"); unsigned int vertexCount = _vertices.size(); // Each vertex occupies 6 elements in the vbuffer float array: // vbuffer[i] : position x diff --git a/ogre2/src/Ogre2FrustumVisual.cc b/ogre2/src/Ogre2FrustumVisual.cc index 6b3b6e83f..5b8a24331 100644 --- a/ogre2/src/Ogre2FrustumVisual.cc +++ b/ogre2/src/Ogre2FrustumVisual.cc @@ -32,6 +32,7 @@ #include #include +#include #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2DynamicRenderable.hh" @@ -131,6 +132,7 @@ void Ogre2FrustumVisual::ClearVisualData() ////////////////////////////////////////////////// void Ogre2FrustumVisual::Update() { + GZ_PROFILE("Ogre2FrustumVisual::Update"); std::shared_ptr renderable = std::shared_ptr( new Ogre2DynamicRenderable(this->Scene())); diff --git a/ogre2/src/Ogre2GaussianNoisePass.cc b/ogre2/src/Ogre2GaussianNoisePass.cc index 86680e96b..f4aa4c065 100644 --- a/ogre2/src/Ogre2GaussianNoisePass.cc +++ b/ogre2/src/Ogre2GaussianNoisePass.cc @@ -17,6 +17,7 @@ #include +#include #include "gz/rendering/RenderPassSystem.hh" #include "gz/rendering/ogre2/Ogre2GaussianNoisePass.hh" @@ -62,6 +63,7 @@ Ogre2GaussianNoisePass::~Ogre2GaussianNoisePass() ////////////////////////////////////////////////// void Ogre2GaussianNoisePass::PreRender(const CameraPtr &/*_camera*/) { + GZ_PROFILE("Ogre2GaussianNoisePass::PreRender"); if (!this->dataPtr->gaussianNoiseMat) return; diff --git a/ogre2/src/Ogre2GlobalIlluminationCiVct.cc b/ogre2/src/Ogre2GlobalIlluminationCiVct.cc index 553451964..d62aefc63 100644 --- a/ogre2/src/Ogre2GlobalIlluminationCiVct.cc +++ b/ogre2/src/Ogre2GlobalIlluminationCiVct.cc @@ -15,6 +15,8 @@ * */ +#include + #include "gz/rendering/ogre2/Ogre2GlobalIlluminationCiVct.hh" #include "gz/rendering/ogre2/Ogre2Camera.hh" @@ -325,6 +327,7 @@ void Ogre2GlobalIlluminationCiVct::NewSettings(uint32_t _bounceCount, ////////////////////////////////////////////////// void Ogre2GlobalIlluminationCiVct::Reset() { + GZ_PROFILE("Ogre2GlobalIlluminationCiVct::Reset"); if (this->Enabled()) { this->scene->SetActiveGlobalIllumination(nullptr); @@ -388,6 +391,7 @@ bool Ogre2GlobalIlluminationCiVct::HighQuality() const ////////////////////////////////////////////////// void Ogre2GlobalIlluminationCiVct::Build() { + GZ_PROFILE("Ogre2GlobalIlluminationCiVct::Build"); Ogre::SceneManager *sceneManager = this->scene->OgreSceneManager(); sceneManager->updateSceneGraph(); @@ -538,6 +542,7 @@ Ogre::HlmsPbs *Ogre2GlobalIlluminationCiVct::HlmsPbs() const ////////////////////////////////////////////////// void Ogre2GlobalIlluminationCiVct::SyncModeVisualizationMode() { + GZ_PROFILE("Ogre2GlobalIlluminationCiVct::SyncModeVisualizationMode"); if (this->dataPtr->cascadedVoxelizer->getNumCascades() > 0u) { if (this->dataPtr->debugVisualizationMode <= DVM_Emissive) diff --git a/ogre2/src/Ogre2GpuRays.cc b/ogre2/src/Ogre2GpuRays.cc index 7365a9a62..89cd9d83d 100644 --- a/ogre2/src/Ogre2GpuRays.cc +++ b/ogre2/src/Ogre2GpuRays.cc @@ -21,6 +21,7 @@ #include #include +#include #include #include "gz/rendering/ogre2/Ogre2Camera.hh" @@ -1248,6 +1249,7 @@ void Ogre2GpuRays::UpdateRenderTarget2ndPass() ////////////////////////////////////////////////// void Ogre2GpuRays::Render() { + GZ_PROFILE("Ogre2GpuRays::Render"); this->scene->StartRendering(this->dataPtr->ogreCamera); auto engine = Ogre2RenderEngine::Instance(); @@ -1272,6 +1274,7 @@ void Ogre2GpuRays::Render() ////////////////////////////////////////////////// void Ogre2GpuRays::PreRender() { + GZ_PROFILE("Ogre2GpuRays::PreRender"); if (!this->dataPtr->cubeUVTexture) this->CreateGpuRaysTextures(); @@ -1300,6 +1303,7 @@ void Ogre2GpuRays::PreRender() ////////////////////////////////////////////////// void Ogre2GpuRays::PostRender() { + GZ_PROFILE("Ogre2GpuRays::PostRender"); unsigned int width = this->dataPtr->w2nd; unsigned int height = this->dataPtr->h2nd; diff --git a/ogre2/src/Ogre2Grid.cc b/ogre2/src/Ogre2Grid.cc index c63c7387e..35a7c3c65 100644 --- a/ogre2/src/Ogre2Grid.cc +++ b/ogre2/src/Ogre2Grid.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre2/Ogre2Grid.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -49,6 +50,7 @@ Ogre2Grid::~Ogre2Grid() ////////////////////////////////////////////////// void Ogre2Grid::PreRender() { + GZ_PROFILE("Ogre2Grid::PreRender"); BaseGrid::PreRender(); if (this->gridDirty) diff --git a/ogre2/src/Ogre2Heightmap.cc b/ogre2/src/Ogre2Heightmap.cc index 36be0a615..d319e98da 100644 --- a/ogre2/src/Ogre2Heightmap.cc +++ b/ogre2/src/Ogre2Heightmap.cc @@ -18,6 +18,7 @@ #include #include +#include #include #include "gz/rendering/ogre2/Ogre2Heightmap.hh" @@ -88,6 +89,7 @@ void Ogre2Heightmap::Destroy() ////////////////////////////////////////////////// void Ogre2Heightmap::Init() { + GZ_PROFILE("Ogre2Heightmap::Init"); Ogre2Object::Init(); if (this->descriptor.Data() == nullptr) @@ -401,6 +403,7 @@ void Ogre2Heightmap::PreRender() /////////////////////////////////////////////////// void Ogre2Heightmap::UpdateForRender(Ogre::Camera *_activeCamera) { + GZ_PROFILE("Ogre2Heightmap::UpdateForRender"); if (this->dataPtr->skirtMinHeight >= 0) { this->dataPtr->terra->setCustomSkirtMinHeight( diff --git a/ogre2/src/Ogre2LensFlarePass.cc b/ogre2/src/Ogre2LensFlarePass.cc index a997d362a..3bc2406cd 100644 --- a/ogre2/src/Ogre2LensFlarePass.cc +++ b/ogre2/src/Ogre2LensFlarePass.cc @@ -16,6 +16,7 @@ */ #include "gz/rendering/ogre2/Ogre2LensFlarePass.hh" +#include #include #include "gz/rendering/RayQuery.hh" @@ -147,6 +148,7 @@ void Ogre2LensFlarePass::Init(ScenePtr _scene) ////////////////////////////////////////////////// void Ogre2LensFlarePass::PreRender(const CameraPtr &_camera) { + GZ_PROFILE("Ogre2LensFlarePass::PreRender"); if (!this->enabled || this->light == nullptr) return; @@ -172,6 +174,7 @@ void Ogre2LensFlarePass::PreRender(const CameraPtr &_camera) ////////////////////////////////////////////////// void Ogre2LensFlarePass::PostRender() { + GZ_PROFILE("Ogre2LensFlarePass::PostRender"); if (!this->enabled || this->light == nullptr) return; @@ -240,6 +243,7 @@ void Ogre2LensFlarePass::WorkspaceRemoved(Ogre::CompositorWorkspace *_workspace) double Ogre2LensFlarePass::OcclusionScale(const math::Vector3d &_imgPos, uint32_t _faceIdx) { + GZ_PROFILE("Ogre2LensFlarePass::OcclusionScale"); if (std::abs(this->dataPtr->occlusionSteps) <= 1e-7) { return this->dataPtr->scale; @@ -320,6 +324,7 @@ double Ogre2LensFlarePass::OcclusionScale(const math::Vector3d &_imgPos, void Ogre2LensFlarePassWorkspaceListenerPrivate::passPreExecute( Ogre::CompositorPass *_pass) { + GZ_PROFILE("Ogre2LensFlarePassWorkspaceListenerPrivate::passPreExecute"); if (!this->owner.enabled) return; diff --git a/ogre2/src/Ogre2LidarVisual.cc b/ogre2/src/Ogre2LidarVisual.cc index 560a5c076..7f761c8a9 100644 --- a/ogre2/src/Ogre2LidarVisual.cc +++ b/ogre2/src/Ogre2LidarVisual.cc @@ -26,6 +26,7 @@ #endif #include +#include #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2DynamicRenderable.hh" @@ -204,6 +205,7 @@ void Ogre2LidarVisual::SetPoints(const std::vector &_points) ////////////////////////////////////////////////// void Ogre2LidarVisual::Update() { + GZ_PROFILE("Ogre2LidarVisual::Update"); if (this->lidarVisualType == LidarVisualType::LVT_NONE) { this->ClearVisualData(); diff --git a/ogre2/src/Ogre2LightVisual.cc b/ogre2/src/Ogre2LightVisual.cc index 7db9698c3..e9dc6eb78 100644 --- a/ogre2/src/Ogre2LightVisual.cc +++ b/ogre2/src/Ogre2LightVisual.cc @@ -14,6 +14,9 @@ * limitations under the License. * */ + +#include + #include "gz/rendering/ogre2/Ogre2LightVisual.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" #include "gz/rendering/ogre2/Ogre2DynamicRenderable.hh" @@ -52,6 +55,7 @@ Ogre2LightVisual::~Ogre2LightVisual() ////////////////////////////////////////////////// void Ogre2LightVisual::PreRender() { + GZ_PROFILE("Ogre2LightVisual::PreRender"); if (this->dirtyLightVisual) { this->CreateVisual(); diff --git a/ogre2/src/Ogre2Marker.cc b/ogre2/src/Ogre2Marker.cc index 6aff17f8d..5ef0aa61c 100644 --- a/ogre2/src/Ogre2Marker.cc +++ b/ogre2/src/Ogre2Marker.cc @@ -26,6 +26,7 @@ #endif #include +#include #include "gz/rendering/ogre2/Ogre2Capsule.hh" #include "gz/rendering/ogre2/Ogre2Conversions.hh" @@ -82,6 +83,7 @@ Ogre2Marker::~Ogre2Marker() ////////////////////////////////////////////////// void Ogre2Marker::PreRender() { + GZ_PROFILE("Ogre2Marker::PreRender"); if (this->markerType == MarkerType::MT_POINTS && this->dataPtr->dynamicRenderable && this->dataPtr->dynamicRenderable->PointCount() > 0u) diff --git a/ogre2/src/Ogre2Material.cc b/ogre2/src/Ogre2Material.cc index b806107ae..cb73f8bc1 100644 --- a/ogre2/src/Ogre2Material.cc +++ b/ogre2/src/Ogre2Material.cc @@ -44,6 +44,7 @@ #include #include #include +#include #include "gz/rendering/GraphicsAPI.hh" #include "gz/rendering/ShaderParams.hh" @@ -354,6 +355,7 @@ void Ogre2Material::SetTransparency(const double _transparency) ////////////////////////////////////////////////// void Ogre2Material::UpdateTransparency() { + GZ_PROFILE("Ogre2Material::UpdateTransparency"); Ogre::HlmsPbsDatablock::TransparencyModes mode; double opacity = (1.0 - this->transparency) * this->diffuse.A(); if (math::equal(opacity, 1.0)) @@ -836,12 +838,14 @@ float Ogre2Material::Metalness() const ////////////////////////////////////////////////// void Ogre2Material::PreRender() { + GZ_PROFILE("Ogre2Material::PreRender"); this->UpdateShaderParams(); } ////////////////////////////////////////////////// void Ogre2Material::UpdateShaderParams() { + GZ_PROFILE("Ogre2Material::UpdateShaderParams"); if (this->dataPtr->vertexShaderParams && this->dataPtr->vertexShaderParams->IsDirty()) { @@ -872,6 +876,7 @@ void Ogre2Material::UpdateShaderParams() void Ogre2Material::UpdateShaderParams(ConstShaderParamsPtr _params, Ogre::GpuProgramParametersSharedPtr _ogreParams) { + GZ_PROFILE("Ogre2Material::UpdateShaderParams_2"); for (const auto &name_param : *_params) { auto *constantDef = @@ -1415,6 +1420,7 @@ Ogre::HlmsUnlitDatablock *Ogre2Material::UnlitDatablock() void Ogre2Material::FillUnlitDatablock(Ogre::HlmsUnlitDatablock *_datablock) const { + GZ_PROFILE("Ogre2Material::FillUnlitDatablock"); if (!this->textureName.empty()) { std::string baseName = common::basename(this->textureName); diff --git a/ogre2/src/Ogre2MaterialSwitcher.cc b/ogre2/src/Ogre2MaterialSwitcher.cc index 2ee007a3f..c1ce1d5f0 100644 --- a/ogre2/src/Ogre2MaterialSwitcher.cc +++ b/ogre2/src/Ogre2MaterialSwitcher.cc @@ -16,6 +16,7 @@ */ #include "gz/common/Console.hh" +#include #include "gz/rendering/ogre2/Ogre2Heightmap.hh" #include "gz/rendering/ogre2/Ogre2MaterialSwitcher.hh" @@ -58,6 +59,7 @@ Ogre2MaterialSwitcher::~Ogre2MaterialSwitcher() void Ogre2MaterialSwitcher::cameraPreRenderScene( Ogre::Camera * /*_evt*/) { + GZ_PROFILE("Ogre2MaterialSwitcher::cameraPreRenderScene"); auto engine = Ogre2RenderEngine::Instance(); engine->SetGzOgreRenderingMode(GORM_SOLID_COLOR); @@ -183,6 +185,7 @@ void Ogre2MaterialSwitcher::cameraPreRenderScene( void Ogre2MaterialSwitcher::cameraPostRenderScene( Ogre::Camera * /*_evt*/) { + GZ_PROFILE("Ogre2MaterialSwitcher::cameraPostRenderScene"); auto engine = Ogre2RenderEngine::Instance(); Ogre::HlmsManager *hlmsManager = engine->OgreRoot()->getHlmsManager(); diff --git a/ogre2/src/Ogre2MeshFactory.cc b/ogre2/src/Ogre2MeshFactory.cc index 2296565a3..d7a5adb5b 100644 --- a/ogre2/src/Ogre2MeshFactory.cc +++ b/ogre2/src/Ogre2MeshFactory.cc @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -96,6 +97,7 @@ void Ogre2MeshFactory::ClearMaterialsCache(const std::string &) ////////////////////////////////////////////////// Ogre2MeshPtr Ogre2MeshFactory::Create(const MeshDescriptor &_desc) { + GZ_PROFILE("Ogre2MeshFactory::Create"); // create ogre entity Ogre2MeshPtr mesh(new Ogre2Mesh); MeshDescriptor normDesc = _desc; @@ -125,6 +127,7 @@ Ogre2MeshPtr Ogre2MeshFactory::Create(const MeshDescriptor &_desc) ////////////////////////////////////////////////// Ogre::Item *Ogre2MeshFactory::OgreItem(const MeshDescriptor &_desc) { + GZ_PROFILE("Ogre2MeshFactory::OgreItem"); if (!this->Load(_desc)) { return nullptr; @@ -181,6 +184,7 @@ bool Ogre2MeshFactory::IsLoaded(const MeshDescriptor &_desc) ////////////////////////////////////////////////// bool Ogre2MeshFactory::LoadImpl(const MeshDescriptor &_desc) { + GZ_PROFILE("Ogre2MeshFactory::LoadImpl"); Ogre::v1::MeshPtr ogreMesh; Ogre2RenderEngine::Instance()->AddResourcePath(_desc.mesh->Path()); diff --git a/ogre2/src/Ogre2NativeWindow.cc b/ogre2/src/Ogre2NativeWindow.cc index 6a516b6fe..691684199 100644 --- a/ogre2/src/Ogre2NativeWindow.cc +++ b/ogre2/src/Ogre2NativeWindow.cc @@ -15,6 +15,8 @@ * */ +#include + #include "gz/rendering/ogre2/Ogre2NativeWindow.hh" #include "gz/rendering/ogre2/Ogre2Camera.hh" @@ -138,6 +140,7 @@ void Ogre2NativeWindow::RequestResolution(uint32_t _width, uint32_t _height) ////////////////////////////////////////////////// void Ogre2NativeWindow::Draw(CameraPtr _camera) { + GZ_PROFILE("Ogre2NativeWindow::Draw"); Ogre2Camera *camera = dynamic_cast(_camera.get()); if (!camera) diff --git a/ogre2/src/Ogre2ParticleEmitter.cc b/ogre2/src/Ogre2ParticleEmitter.cc index b5ec6d76b..8b9cc6982 100644 --- a/ogre2/src/Ogre2ParticleEmitter.cc +++ b/ogre2/src/Ogre2ParticleEmitter.cc @@ -26,6 +26,8 @@ #pragma warning(pop) #endif +#include + #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2Includes.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -435,6 +437,7 @@ void Ogre2ParticleEmitter::Init() ////////////////////////////////////////////////// void Ogre2ParticleEmitter::PreRender() { + GZ_PROFILE("Ogre2ParticleEmitter::PreRender"); // recreate the particle system if needed // currently this is needed when user changes type or particle size if (this->dataPtr->emitterDirty) diff --git a/ogre2/src/Ogre2ParticleNoiseListener.cc b/ogre2/src/Ogre2ParticleNoiseListener.cc index 5010575f2..478c2addb 100644 --- a/ogre2/src/Ogre2ParticleNoiseListener.cc +++ b/ogre2/src/Ogre2ParticleNoiseListener.cc @@ -17,6 +17,8 @@ #include +#include + #include #include "gz/rendering/ogre2/Ogre2Includes.hh" @@ -42,6 +44,7 @@ Ogre2ParticleNoiseListener::Ogre2ParticleNoiseListener( void Ogre2ParticleNoiseListener::cameraPreRenderScene( Ogre::Camera * _cam) { + GZ_PROFILE("Ogre2ParticleNoiseListener::cameraPreRenderScene"); // the code here is responsible for setting the depth variation of readings // returned by sensor in areas where particles are. It does so by adding // noise with high std dev values. @@ -122,6 +125,7 @@ void Ogre2ParticleNoiseListener::SetupMaterial(Ogre::Pass *_pass, Ogre2ScenePtr _scene, Ogre::Camera *_cam) { + GZ_PROFILE("Ogre2ParticleNoiseListener::SetupMaterial"); // the code here is responsible for setting the depth variation of readings // returned by sensor in areas where particles are. It does so by adding // noise with high std dev values. diff --git a/ogre2/src/Ogre2Projector.cc b/ogre2/src/Ogre2Projector.cc index ca2fec956..6c2731999 100644 --- a/ogre2/src/Ogre2Projector.cc +++ b/ogre2/src/Ogre2Projector.cc @@ -25,6 +25,8 @@ #include #include +#include + #include "gz/rendering/ogre2/Ogre2Camera.hh" #include "gz/rendering/ogre2/Ogre2DepthCamera.hh" #include "gz/rendering/ogre2/Ogre2Projector.hh" @@ -148,6 +150,7 @@ Ogre2Projector::~Ogre2Projector() ///////////////////////////////////////////////// void Ogre2Projector::PreRender() { + GZ_PROFILE("Ogre2Projector::PreRender"); if (!this->dataPtr->initialized) { this->CreateProjector(); @@ -161,6 +164,7 @@ void Ogre2Projector::PreRender() ///////////////////////////////////////////////// void Ogre2Projector::UpdateCameraListener() { + GZ_PROFILE("Ogre2Projector::UpdateCameraListener"); // if a custom visibility flag is set, we will need to use a listener // for toggling the visibility of the decal if ((this->VisibilityFlags() & GZ_VISIBILITY_ALL) == GZ_VISIBILITY_ALL) @@ -233,6 +237,7 @@ void Ogre2Projector::UpdateCameraListener() ///////////////////////////////////////////////// void Ogre2Projector::CreateProjector() { + GZ_PROFILE("Ogre2Projector::CreateProjector"); this->dataPtr->decalNode = this->ogreNode->createChildSceneNode(); this->dataPtr->decalNode->roll(Ogre::Degree(90)); this->dataPtr->decalNode->yaw(Ogre::Degree(180)); @@ -329,6 +334,7 @@ Ogre2ProjectorCameraListener::Ogre2ProjectorCameraListener( void Ogre2ProjectorCameraListener::cameraPreRenderScene( Ogre::Camera *_cam) { + GZ_PROFILE("Ogre2ProjectorCameraListener::cameraPreRenderScene"); uint32_t mask = _cam->getLastViewport()->getVisibilityMask(); if (this->visibilityFlags & mask && this->decalNode && this->decal) { @@ -344,6 +350,7 @@ void Ogre2ProjectorCameraListener::cameraPreRenderScene( void Ogre2ProjectorCameraListener::cameraPostRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2ProjectorCameraListener::cameraPostRenderScene"); if (this->decalNode) this->decalNode->setVisible(false); } diff --git a/ogre2/src/Ogre2RayQuery.cc b/ogre2/src/Ogre2RayQuery.cc index 943dfa656..40c6625c4 100644 --- a/ogre2/src/Ogre2RayQuery.cc +++ b/ogre2/src/Ogre2RayQuery.cc @@ -19,6 +19,7 @@ #include #include #include +#include #include "gz/rendering/ogre2/Ogre2Camera.hh" #include "gz/rendering/ogre2/Ogre2Conversions.hh" @@ -107,6 +108,7 @@ Ogre2RayQuery::~Ogre2RayQuery() void Ogre2RayQuery::SetFromCamera(const CameraPtr &_camera, const math::Vector2d &_coord) { + GZ_PROFILE("Ogre2RayQuery::SetFromCamera"); // convert to normalized screen pos for ogre math::Vector2d screenPos((_coord.X() + 1.0) / 2.0, (_coord.Y() - 1.0) / -2.0); @@ -160,6 +162,7 @@ void Ogre2RayQuery::SetFromCamera(const WideAngleCameraPtr &_camera, uint32_t _faceIdx, const math::Vector2d &_coord) { + GZ_PROFILE("Ogre2RayQuery::SetFromCamera_2"); // convert to normalized screen pos for ogre math::Vector2d screenPos((_coord.X() + 1.0) / 2.0, (_coord.Y() - 1.0) / -2.0); @@ -220,6 +223,7 @@ bool Ogre2RayQuery::UsesGpu() const ////////////////////////////////////////////////// RayQueryResult Ogre2RayQuery::ClosestPoint(bool _forceSceneUpdate) { + GZ_PROFILE("Ogre2RayQuery::ClosestPoint"); if (!this->UsesGpu()) { // use legacy method for backward compatibility if no camera is set or @@ -242,6 +246,7 @@ RayQueryResult Ogre2RayQuery::ClosestPoint(bool _forceSceneUpdate) ////////////////////////////////////////////////// RayQueryResult Ogre2RayQuery::ClosestPointBySelectionBuffer() { + GZ_PROFILE("Ogre2RayQuery::ClosestPointBySelectionBuffer"); // update selection buffer dimension in case window is resized this->dataPtr->camera->SelectionBuffer()->SetDimensions( this->dataPtr->camera->ImageWidth(), this->dataPtr->camera->ImageHeight()); @@ -333,6 +338,7 @@ class GZ_RENDERING_OGRE2_HIDDEN ThreadedTriRay final ////////////////////////////////////////////////// void ThreadedTriRay::execute(size_t _threadId, size_t _numThreads) { + GZ_PROFILE("ThreadedTriRay::execute"); const unsigned int numThreads = static_cast(_numThreads); const unsigned int threadId = static_cast(_threadId); @@ -492,6 +498,7 @@ void ThreadedTriRay::execute(size_t _threadId, size_t _numThreads) ////////////////////////////////////////////////// RayQueryResult ThreadedTriRay::CollapseCollectedResults() { + GZ_PROFILE("ThreadedTriRay::CollapseCollectedResults"); RayQueryResult result; for (const RayQueryResult &entry : this->collectedResults) { @@ -509,6 +516,7 @@ RayQueryResult ThreadedTriRay::CollapseCollectedResults() ////////////////////////////////////////////////// RayQueryResult Ogre2RayQuery::ClosestPointByIntersection(bool _forceSceneUpdate) { + GZ_PROFILE("Ogre2RayQuery::ClosestPointByIntersection"); RayQueryResult result; Ogre2ScenePtr ogreScene = std::dynamic_pointer_cast(this->Scene()); diff --git a/ogre2/src/Ogre2RenderTarget.cc b/ogre2/src/Ogre2RenderTarget.cc index 4f5567376..f886fd5c6 100644 --- a/ogre2/src/Ogre2RenderTarget.cc +++ b/ogre2/src/Ogre2RenderTarget.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/Material.hh" @@ -131,6 +132,7 @@ Ogre2RenderTarget::~Ogre2RenderTarget() ////////////////////////////////////////////////// void Ogre2RenderTarget::BuildCompositor() { + GZ_PROFILE("Ogre2RenderTarget::BuildCompositor"); auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); Ogre::CompositorManager2 *ogreCompMgr = ogreRoot->getCompositorManager2(); @@ -370,6 +372,7 @@ void Ogre2RenderTarget::RebuildCompositor() ////////////////////////////////////////////////// void Ogre2RenderTarget::Copy(Image &_image) const { + GZ_PROFILE("Ogre2RenderTarget::Copy"); // TODO(anyone) handle Bayer conversions if (_image.Width() != this->width || _image.Height() != this->height) @@ -492,6 +495,7 @@ void Ogre2RenderTarget::SetAntiAliasing(unsigned int _aa) ////////////////////////////////////////////////// void Ogre2RenderTarget::PreRender() { + GZ_PROFILE("Ogre2RenderTarget::PreRender"); BaseRenderTarget::PreRender(); this->UpdateBackgroundColor(); @@ -511,6 +515,7 @@ void Ogre2RenderTarget::PostRender() ////////////////////////////////////////////////// void Ogre2RenderTarget::Render() { + GZ_PROFILE("Ogre2RenderTarget::Render"); this->scene->StartRendering(this->ogreCamera); this->ogreCompositorWorkspace->_validateFinalTarget(); @@ -613,6 +618,7 @@ void Ogre2RenderTarget::MetalIdImpl(void *_textureIdPtr) const ////////////////////////////////////////////////// void Ogre2RenderTarget::PrepareForExternalSampling() { + GZ_PROFILE("Ogre2RenderTarget::PrepareForExternalSampling"); if (!this->dataPtr->ogreTexture[0]) return; @@ -777,6 +783,7 @@ void Ogre2RenderTarget::UpdateRenderPassChain( bool _recreateNodes, Ogre::TextureGpu *(*_ogreTextures)[2], bool _isRenderWindow) { + GZ_PROFILE("Ogre2RenderTarget::UpdateRenderPassChain"); if (!_workspace || _workspaceDefName.empty() || _baseNode.empty() || _finalNode.empty() || _renderPasses.empty()) return; @@ -1040,12 +1047,14 @@ void Ogre2RenderTexture::MetalId(void *_textureIdPtr) const ////////////////////////////////////////////////// void Ogre2RenderTexture::PreRender() { + GZ_PROFILE("Ogre2RenderTexture::PreRender"); Ogre2RenderTarget::PreRender(); } ////////////////////////////////////////////////// void Ogre2RenderTexture::PostRender() { + GZ_PROFILE("Ogre2RenderTexture::PostRender"); Ogre2RenderTarget::PostRender(); } diff --git a/ogre2/src/Ogre2Scene.cc b/ogre2/src/Ogre2Scene.cc index ccd4f3491..0e48fe5fb 100644 --- a/ogre2/src/Ogre2Scene.cc +++ b/ogre2/src/Ogre2Scene.cc @@ -30,6 +30,7 @@ #endif #include +#include #include "gz/rendering/base/SceneExt.hh" #include "gz/rendering/GraphicsAPI.hh" @@ -229,6 +230,7 @@ void Ogre2Scene::SetBackgroundColor(const math::Color &_color) ////////////////////////////////////////////////// void Ogre2Scene::PreRender() { + GZ_PROFILE("Ogre2Scene::PreRender"); GZ_ASSERT((this->LegacyAutoGpuFlush() || this->dataPtr->frameUpdateStarted == false), "Scene::PreRender called again before calling Scene::PostRender. " @@ -282,6 +284,7 @@ void Ogre2Scene::PreRender() ////////////////////////////////////////////////// void Ogre2Scene::PostRender() { + GZ_PROFILE("Ogre2Scene::PostRender"); GZ_ASSERT((this->LegacyAutoGpuFlush() || this->dataPtr->frameUpdateStarted == true), "Scene::PostRender called again before calling Scene::PreRender. " @@ -317,6 +320,7 @@ void Ogre2Scene::PostRender() ////////////////////////////////////////////////// void Ogre2Scene::StartForcedRender() { + GZ_PROFILE("Ogre2Scene::StartForcedRender"); if (this->LegacyAutoGpuFlush() || !this->dataPtr->frameUpdateStarted) { this->ogreSceneManager->updateSceneGraph(); @@ -326,6 +330,7 @@ void Ogre2Scene::StartForcedRender() ////////////////////////////////////////////////// void Ogre2Scene::EndForcedRender() { + GZ_PROFILE("Ogre2Scene::EndForcedRender"); this->dataPtr->currNumCameraPasses = 0u; this->FlushGpuCommandsOnly(); @@ -346,6 +351,7 @@ void Ogre2Scene::EndForcedRender() ////////////////////////////////////////////////// void Ogre2Scene::StartRendering(Ogre::Camera *_camera) { + GZ_PROFILE("Ogre2Scene::StartRendering"); if (_camera) this->UpdateAllHeightmaps(_camera); @@ -392,6 +398,7 @@ void Ogre2Scene::StartRendering(Ogre::Camera *_camera) void Ogre2Scene::FlushGpuCommandsAndStartNewFrame(uint8_t _numPasses, bool _startNewFrame) { + GZ_PROFILE("Ogre2Scene::FlushGpuCommandsAndStartNewFrame"); this->dataPtr->currNumCameraPasses += _numPasses; if (this->dataPtr->currNumCameraPasses >= dataPtr->cameraPassCountPerGpuFlush @@ -409,6 +416,7 @@ void Ogre2Scene::FlushGpuCommandsAndStartNewFrame(uint8_t _numPasses, ////////////////////////////////////////////////// void Ogre2Scene::FlushGpuCommandsOnly() { + GZ_PROFILE("Ogre2Scene::FlushGpuCommandsOnly"); auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); Ogre::CompositorManager2 *ogreCompMgr = ogreRoot->getCompositorManager2(); @@ -436,6 +444,7 @@ void Ogre2Scene::FlushGpuCommandsOnly() ////////////////////////////////////////////////// void Ogre2Scene::EndFrame() { + GZ_PROFILE("Ogre2Scene::EndFrame"); auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); @@ -532,6 +541,7 @@ bool Ogre2Scene::InitImpl() ////////////////////////////////////////////////// void Ogre2Scene::UpdateAllHeightmaps(Ogre::Camera *_camera) { + GZ_PROFILE("Ogre2Scene::UpdateAllHeightmaps"); auto engine = Ogre2RenderEngine::Instance(); Ogre::HlmsPbsTerraShadows *pbsTerraShadows = engine->HlmsPbsTerraShadows(); @@ -622,6 +632,7 @@ void Ogre2Scene::UpdateAllHeightmaps(Ogre::Camera *_camera) ////////////////////////////////////////////////// void Ogre2Scene::UpdateShadowNode() { + GZ_PROFILE("Ogre2Scene::UpdateShadowNode"); if (!this->ShadowsDirty()) return; @@ -756,6 +767,7 @@ void Ogre2Scene::CreateShadowNodeWithSettings( const std::string &_shadowNodeName, const Ogre::ShadowNodeHelper::ShadowParamVec &_shadowParams) { + GZ_PROFILE("Ogre2Scene::CreateShadowNodeWithSettings"); Ogre::uint32 pointLightCubemapResolution = 1024u; Ogre::Real pssmLambda = 0.95f; Ogre::Real splitPadding = 1.0f; diff --git a/ogre2/src/Ogre2SegmentationCamera.cc b/ogre2/src/Ogre2SegmentationCamera.cc index f3c3fc352..b20b21c8d 100644 --- a/ogre2/src/Ogre2SegmentationCamera.cc +++ b/ogre2/src/Ogre2SegmentationCamera.cc @@ -18,6 +18,8 @@ #include #include +#include + #include #include @@ -163,6 +165,7 @@ void Ogre2SegmentationCamera::Destroy() ///////////////////////////////////////////////// void Ogre2SegmentationCamera::PreRender() { + GZ_PROFILE("Ogre2SegmentationCamera::PreRender"); if (!this->dataPtr->ogreSegmentationTexture) this->CreateSegmentationTexture(); } @@ -200,6 +203,7 @@ void Ogre2SegmentationCamera::CreateCamera() ///////////////////////////////////////////////// void Ogre2SegmentationCamera::CreateSegmentationTexture() { + GZ_PROFILE("Ogre2SegmentationCamera::CreateSegmentationTexture"); // Camera Parameters this->ogreCamera->setNearClipDistance(this->NearClipPlane()); this->ogreCamera->setFarClipDistance(this->FarClipPlane()); @@ -254,6 +258,7 @@ void Ogre2SegmentationCamera::CreateSegmentationTexture() ///////////////////////////////////////////////// void Ogre2SegmentationCamera::PostRender() { + GZ_PROFILE("Ogre2SegmentationCamera::PostRender"); // return if no one is listening to the new frame if (this->dataPtr->newSegmentationFrame.ConnectionCount() == 0) return; @@ -314,6 +319,7 @@ gz::common::ConnectionPtr ///////////////////////////////////////////////// void Ogre2SegmentationCamera::Render() { + GZ_PROFILE("Ogre2ThermalCamera::Render"); // update the compositors this->scene->StartRendering(this->ogreCamera); @@ -357,6 +363,7 @@ void Ogre2SegmentationCamera::SetBackgroundLabel(int _label) void Ogre2SegmentationCamera::LabelMapFromColoredBuffer( uint8_t * _labelBuffer) const { + GZ_PROFILE("Ogre2SegmentationCamera::LabelMapFromColoredBuffer"); if (!this->isColoredMap) return; diff --git a/ogre2/src/Ogre2SegmentationMaterialSwitcher.cc b/ogre2/src/Ogre2SegmentationMaterialSwitcher.cc index 6c8cb9b36..736a02f71 100644 --- a/ogre2/src/Ogre2SegmentationMaterialSwitcher.cc +++ b/ogre2/src/Ogre2SegmentationMaterialSwitcher.cc @@ -23,6 +23,7 @@ #include #include +#include #include "gz/rendering/ogre2/Ogre2Heightmap.hh" #include "gz/rendering/ogre2/Ogre2RenderEngine.hh" @@ -84,6 +85,7 @@ bool Ogre2SegmentationMaterialSwitcher::IsTakenColor(const math::Color &_color) Ogre::Vector4 Ogre2SegmentationMaterialSwitcher::ColorForVisual( const VisualPtr &_visual, std::string &_prevParentName) { + GZ_PROFILE("Ogre2SegmentationMaterialSwitcher::ColorForVisual"); // get class user data Variant labelAny = _visual->UserData("label"); int label; @@ -175,6 +177,7 @@ Ogre::Vector4 Ogre2SegmentationMaterialSwitcher::ColorForVisual( math::Color Ogre2SegmentationMaterialSwitcher::LabelToColor(int64_t _label, bool _isMultiLink) { + GZ_PROFILE("Ogre2SegmentationMaterialSwitcher::LabelToColor"); if (_label == this->segmentationCamera->BackgroundLabel()) return this->segmentationCamera->BackgroundColor(); @@ -219,6 +222,7 @@ math::Color Ogre2SegmentationMaterialSwitcher::LabelToColor(int64_t _label, VisualPtr Ogre2SegmentationMaterialSwitcher::TopLevelModelVisual( VisualPtr _visual) const { + GZ_PROFILE("Ogre2SegmentationMaterialSwitcher::TopLevelModelVisual"); if (!_visual) return _visual; VisualPtr p = _visual; @@ -231,6 +235,7 @@ VisualPtr Ogre2SegmentationMaterialSwitcher::TopLevelModelVisual( void Ogre2SegmentationMaterialSwitcher::cameraPreRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2SegmentationMaterialSwitcher::cameraPreRenderScene"); this->colorToLabel.clear(); auto itor = this->scene->OgreSceneManager()->getMovableObjectIterator( Ogre::ItemFactory::FACTORY_TYPE_NAME); @@ -394,6 +399,7 @@ void Ogre2SegmentationMaterialSwitcher::cameraPreRenderScene( void Ogre2SegmentationMaterialSwitcher::cameraPostRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2SegmentationMaterialSwitcher::cameraPostRenderScene"); auto engine = Ogre2RenderEngine::Instance(); Ogre::HlmsManager *hlmsManager = engine->OgreRoot()->getHlmsManager(); diff --git a/ogre2/src/Ogre2SelectionBuffer.cc b/ogre2/src/Ogre2SelectionBuffer.cc index bc28f3a09..f823cb0ad 100644 --- a/ogre2/src/Ogre2SelectionBuffer.cc +++ b/ogre2/src/Ogre2SelectionBuffer.cc @@ -19,6 +19,8 @@ #include #include "gz/common/Console.hh" +#include + #include "gz/rendering/RenderTypes.hh" #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2Heightmap.hh" @@ -173,6 +175,7 @@ Ogre2SelectionBuffer::~Ogre2SelectionBuffer() ///////////////////////////////////////////////// void Ogre2SelectionBuffer::Update() { + GZ_PROFILE("Ogre2SelectionBuffer::Update"); if (!this->dataPtr->renderTexture) return; @@ -205,6 +208,7 @@ void Ogre2SelectionBuffer::Update() ///////////////////////////////////////////////// void Ogre2SelectionBuffer::DeleteRTTBuffer() { + GZ_PROFILE("Ogre2SelectionBuffer::DeleteRTTBuffer"); if (this->dataPtr->ogreCompositorWorkspace) { // TODO(ahcorde): Remove the workspace. Potential leak here @@ -236,6 +240,7 @@ void Ogre2SelectionBuffer::DeleteRTTBuffer() ///////////////////////////////////////////////// void Ogre2SelectionBuffer::CreateRTTBuffer() { + GZ_PROFILE("Ogre2SelectionBuffer::CreateRTTBuffer"); auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); @@ -425,6 +430,7 @@ Ogre::MovableObject *Ogre2SelectionBuffer::OnSelectionClick(int _x, int _y) bool Ogre2SelectionBuffer::ExecuteQuery(int _x, int _y, Ogre::MovableObject *&_obj, math::Vector3d &_point) { + GZ_PROFILE("Ogre2SelectionBuffer::ExecuteQuery"); if (!this->dataPtr->renderTexture) return false; diff --git a/ogre2/src/Ogre2ThermalCamera.cc b/ogre2/src/Ogre2ThermalCamera.cc index 07954e960..ad1843269 100644 --- a/ogre2/src/Ogre2ThermalCamera.cc +++ b/ogre2/src/Ogre2ThermalCamera.cc @@ -42,6 +42,8 @@ #include #include +#include + #include #include @@ -232,6 +234,7 @@ void Ogre2ThermalCameraMaterialSwitcher::SetLinearResolution(double _resolution) void Ogre2ThermalCameraMaterialSwitcher::cameraPreRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2ThermalCameraMaterialSwitcher::cameraPreRenderScene"); auto engine = Ogre2RenderEngine::Instance(); engine->SetGzOgreRenderingMode(GORM_SOLID_THERMAL_COLOR_TEXTURED); @@ -620,6 +623,7 @@ void Ogre2ThermalCameraMaterialSwitcher::cameraPreRenderScene( void Ogre2ThermalCameraMaterialSwitcher::cameraPostRenderScene( Ogre::Camera * /*_cam*/) { + GZ_PROFILE("Ogre2ThermalCameraMaterialSwitcher::cameraPostRenderScene"); auto engine = Ogre2RenderEngine::Instance(); Ogre::HlmsManager *hlmsManager = engine->OgreRoot()->getHlmsManager(); @@ -821,6 +825,7 @@ void Ogre2ThermalCamera::CreateRenderTexture() ///////////////////////////////////////////////////////// void Ogre2ThermalCamera::CreateThermalTexture() { + GZ_PROFILE("Ogre2ThermalCamera::CreateThermalTexture"); // set aspect ratio and fov const double aspectRatio = this->AspectRatio(); const double angle = this->HFOV().Radian(); @@ -1089,6 +1094,7 @@ void Ogre2ThermalCamera::CreateThermalTexture() ////////////////////////////////////////////////// void Ogre2ThermalCamera::Render() { + GZ_PROFILE("Ogre2ThermalCamera::Render"); // Our shaders rely on clamped values so enable it for this sensor // // TODO(anyone): Matias N. Goldberg (dark_sylinc) insists this is a hack @@ -1117,6 +1123,7 @@ void Ogre2ThermalCamera::Render() ////////////////////////////////////////////////// void Ogre2ThermalCamera::PreRender() { + GZ_PROFILE("Ogre2ThermalCamera::PreRender"); if (!this->dataPtr->ogreThermalTexture) this->CreateThermalTexture(); @@ -1139,6 +1146,7 @@ void Ogre2ThermalCamera::PreRender() ////////////////////////////////////////////////// void Ogre2ThermalCamera::PostRender() { + GZ_PROFILE("Ogre2ThermalCamera::PostRender"); if (this->dataPtr->newThermalFrame.ConnectionCount() <= 0u) return; diff --git a/ogre2/src/Ogre2Visual.cc b/ogre2/src/Ogre2Visual.cc index a081b9f94..bc9163f5a 100644 --- a/ogre2/src/Ogre2Visual.cc +++ b/ogre2/src/Ogre2Visual.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre2/Ogre2Conversions.hh" #include "gz/rendering/ogre2/Ogre2Geometry.hh" @@ -58,6 +59,7 @@ Ogre2Visual::~Ogre2Visual() ////////////////////////////////////////////////// void Ogre2Visual::SetWireframe(bool _show) { + GZ_PROFILE("Ogre2Visual::SetWireframe"); if (this->dataPtr->wireframe == _show) return; @@ -238,6 +240,7 @@ void Ogre2Visual::BoundsHelper(gz::math::AxisAlignedBox &_box, void Ogre2Visual::BoundsHelper(gz::math::AxisAlignedBox &_box, bool _local, const gz::math::Pose3d &_pose) const { + GZ_PROFILE("Ogre2Visual::BoundsHelper"); if (!this->ogreNode) return; diff --git a/ogre2/src/Ogre2WideAngleCamera.cc b/ogre2/src/Ogre2WideAngleCamera.cc index efbea2b80..5ed24d39a 100644 --- a/ogre2/src/Ogre2WideAngleCamera.cc +++ b/ogre2/src/Ogre2WideAngleCamera.cc @@ -23,6 +23,7 @@ #include "gz/rendering/ogre2/Ogre2RenderPass.hh" #include "gz/rendering/ogre2/Ogre2Scene.hh" +#include #include "gz/common/Util.hh" #ifdef _MSC_VER @@ -229,6 +230,7 @@ void Ogre2WideAngleCamera::DestroyRenderTexture() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::PreRender() { + GZ_PROFILE("Ogre2WideAngleCamera::PreRender"); BaseCamera::PreRender(); if (this->dataPtr->backgroundMaterialDirty) @@ -454,6 +456,7 @@ std::string Ogre2WideAngleCamera::WorkspaceFinalPassDefinitionName() const ////////////////////////////////////////////////// void Ogre2WideAngleCamera::CreateStitchWorkspaceDefinition() { + GZ_PROFILE("Ogre2WideAngleCamera::CreateStitchWorkspaceDefinition"); using namespace Ogre; auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); @@ -495,6 +498,7 @@ void Ogre2WideAngleCamera::CreateStitchWorkspaceDefinition() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::CreateStitchWorkspace() { + GZ_PROFILE("Ogre2WideAngleCamera::CreateStitchWorkspace"); this->CreateStitchWorkspaceDefinition(); auto engine = Ogre2RenderEngine::Instance(); @@ -535,6 +539,7 @@ void Ogre2WideAngleCamera::CreateStitchWorkspace() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::DestroyStitchWorkspace() { + GZ_PROFILE("Ogre2WideAngleCamera::DestroyStitchWorkspace"); if (this->dataPtr->ogreCompositorFinalPass) { auto engine = Ogre2RenderEngine::Instance(); @@ -635,6 +640,7 @@ std::string Ogre2WideAngleCamera::WorkspaceDefinitionName( ////////////////////////////////////////////////// void Ogre2WideAngleCamera::CreateWorkspaceDefinition(bool _withMsaa) { + GZ_PROFILE("Ogre2WideAngleCamera::CreateWorkspaceDefinition"); using namespace Ogre; auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); @@ -701,6 +707,7 @@ void Ogre2WideAngleCamera::CreateWorkspaceDefinition(bool _withMsaa) ////////////////////////////////////////////////// void Ogre2WideAngleCamera::CreateFacesWorkspaces(bool _withMsaa) { + GZ_PROFILE("Ogre2WideAngleCamera::CreateFacesWorkspaces"); this->CreateWorkspaceDefinition(_withMsaa); auto engine = Ogre2RenderEngine::Instance(); @@ -738,6 +745,7 @@ void Ogre2WideAngleCamera::CreateFacesWorkspaces(bool _withMsaa) ////////////////////////////////////////////////// void Ogre2WideAngleCamera::DestroyFacesWorkspaces() { + GZ_PROFILE("Ogre2WideAngleCamera::DestroyFacesWorkspaces"); using namespace Ogre; auto engine = Ogre2RenderEngine::Instance(); auto ogreRoot = engine->OgreRoot(); @@ -769,6 +777,7 @@ void Ogre2WideAngleCamera::DestroyFacesWorkspaces() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::UpdateRenderPasses() { + GZ_PROFILE("Ogre2WideAngleCamera::UpdateRenderPasses"); using namespace Ogre; bool updateConnection = false; @@ -937,6 +946,7 @@ void Ogre2WideAngleCamera::UpdateRenderPasses() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::CreateWideAngleTexture() { + GZ_PROFILE("Ogre2WideAngleCamera::CreateWideAngleTexture"); if (this->dataPtr->ogreCamera == nullptr) { gzerr << "Ogre camera cannot be created" << std::endl; @@ -1021,6 +1031,7 @@ void Ogre2WideAngleCamera::CreateWideAngleTexture() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::Render() { + GZ_PROFILE("Ogre2WideAngleCamera::Render"); // make sure we do not alter the reserved visibility flags const uint32_t currVisibilityMask = this->VisibilityMask() & Ogre::VisibilityFlags::RESERVED_VISIBILITY_FLAGS; @@ -1075,6 +1086,7 @@ void Ogre2WideAngleCamera::Render() ////////////////////////////////////////////////// void Ogre2WideAngleCamera::Copy(Image &_image) const { + GZ_PROFILE("Ogre2WideAngleCamera::Copy"); if (_image.Width() != this->ImageWidth() || _image.Height() != this->ImageHeight()) { @@ -1117,6 +1129,7 @@ void Ogre2WideAngleCamera::Copy(Image &_image) const ////////////////////////////////////////////////// math::Vector3d Ogre2WideAngleCamera::Project3d(const math::Vector3d &_pt) const { + GZ_PROFILE("Ogre2WideAngleCamera::Project3d"); using namespace Ogre; this->dataPtr->ogreCamera->setAspectRatio(1.0f); @@ -1233,6 +1246,7 @@ math::Vector3d Ogre2WideAngleCamera::Project3d(const math::Vector3d &_pt) const Ogre::Ray Ogre2WideAngleCamera::CameraToViewportRay( const math::Vector2d &_screenPos, uint32_t _faceIdx) { + GZ_PROFILE("Ogre2WideAngleCamera::CameraToViewportRay"); this->dataPtr->ogreCamera->setAspectRatio(1.0f); this->dataPtr->ogreCamera->setFOVy(Ogre::Degree(90)); const Ogre::Quaternion oldCameraOrientation( @@ -1253,6 +1267,7 @@ Ogre::Ray Ogre2WideAngleCamera::CameraToViewportRay( ////////////////////////////////////////////////// void Ogre2WideAngleCamera::PostRender() { + GZ_PROFILE("Ogre2WideAngleCamera::PostRender"); for (RenderPassPtr &pass : this->dataPtr->renderPasses) { pass->PostRender(); @@ -1375,6 +1390,7 @@ void Ogre2WideAngleCamera::PrepareForCubemapFacePass( ////////////////////////////////////////////////// void Ogre2WideAngleCamera::PrepareForFinalPass(Ogre::Pass *_pass) { + GZ_PROFILE("Ogre2WideAngleCamera::PrepareForFinalPass"); const double ratio = static_cast(this->ImageWidth()) / static_cast(this->ImageHeight()); const double vfov = 2.0 * atan(tan(this->HFOV().Radian() / 2.0) / ratio); @@ -1425,6 +1441,7 @@ void Ogre2WideAngleCamera::PrepareForFinalPass(Ogre::Pass *_pass) void Ogre2WideAngleCameraWorkspaceListenerPrivate::passPreExecute( Ogre::CompositorPass *_pass) { + GZ_PROFILE("Ogre2WideAngleCameraWorkspaceListenerPrivate::passPreExecute"); const uint32_t identifier = _pass->getDefinition()->mIdentifier; if (identifier == kWideAngleCameraCubemapPassId) { @@ -1460,6 +1477,7 @@ MaterialPtr Ogre2WideAngleCamera::BackgroundMaterial() const ////////////////////////////////////////////////// void Ogre2WideAngleCamera::UpdateBackgroundMaterial() { + GZ_PROFILE("Ogre2WideAngleCamera::UpdateBackgroundMaterial"); if (!this->dataPtr->backgroundMaterialDirty) return; diff --git a/ogre2/src/Ogre2WireBox.cc b/ogre2/src/Ogre2WireBox.cc index 40505660b..f272a9a78 100644 --- a/ogre2/src/Ogre2WireBox.cc +++ b/ogre2/src/Ogre2WireBox.cc @@ -16,6 +16,7 @@ */ #include +#include #include "gz/rendering/ogre2/Ogre2WireBox.hh" #include "gz/rendering/ogre2/Ogre2Material.hh" @@ -48,6 +49,7 @@ Ogre2WireBox::~Ogre2WireBox() ////////////////////////////////////////////////// void Ogre2WireBox::PreRender() { + GZ_PROFILE("Ogre2WireBox::PreRender"); if (this->wireBoxDirty) { this->Create();