[development] Migrated Atom CPU profiler to utilize new AzCore Profiler interface and related macros (#4160)

- Added new interface type AZ::Debug::Profiler to externally register profiler systems
 - Modified the Atom CPU profiler to register as an AzCore profiler
 -- This allows full engine markers to be visualized in the associated ImGui tool
 - Converted all AZ_ATOM_PROFILE_* macros to use AZ_PROFILE_* macros instead

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
This commit is contained in:
Scott Romero
2021-09-20 11:40:57 -07:00
committed by GitHub
parent 6565b91854
commit 36bcf5849a
72 changed files with 239 additions and 336 deletions
@@ -169,7 +169,7 @@ namespace AZ
void PassSystem::RemovePasses()
{
m_state = PassSystemState::RemovingPasses;
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: RemovePasses");
AZ_PROFILE_SCOPE(RPI, "PassSystem: RemovePasses");
if (!m_removePassList.empty())
{
@@ -189,8 +189,7 @@ namespace AZ
void PassSystem::BuildPasses()
{
m_state = PassSystemState::BuildingPasses;
AZ_PROFILE_FUNCTION(RPI);
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: BuildPassAttachments");
AZ_PROFILE_SCOPE(RPI, "PassSystem: BuildPasses");
m_passHierarchyChanged = m_passHierarchyChanged || !m_buildPassList.empty();
@@ -239,8 +238,7 @@ namespace AZ
void PassSystem::InitializePasses()
{
m_state = PassSystemState::InitializingPasses;
AZ_PROFILE_FUNCTION(RPI);
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: BuildPassAttachments");
AZ_PROFILE_SCOPE(RPI, "PassSystem: InitializePasses");
m_passHierarchyChanged = m_passHierarchyChanged || !m_initializePassList.empty();
@@ -277,7 +275,6 @@ namespace AZ
void PassSystem::Validate()
{
m_state = PassSystemState::ValidatingPasses;
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: Validate");
if (PassValidation::IsEnabled())
{
@@ -286,7 +283,7 @@ namespace AZ
return;
}
AZ_PROFILE_FUNCTION(RPI);
AZ_PROFILE_SCOPE(RPI, "PassSystem: Validate");
PassValidationResults validationResults;
m_rootPass->Validate(validationResults);
@@ -298,7 +295,7 @@ namespace AZ
void PassSystem::ProcessQueuedChanges()
{
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: ProcessQueuedChanges");
AZ_PROFILE_SCOPE(RPI, "PassSystem: ProcessQueuedChanges");
RemovePasses();
BuildPasses();
InitializePasses();
@@ -307,8 +304,7 @@ namespace AZ
void PassSystem::FrameUpdate(RHI::FrameGraphBuilder& frameGraphBuilder)
{
AZ_PROFILE_FUNCTION(RPI);
AZ_ATOM_PROFILE_FUNCTION("RPI", "PassSystem: FrameUpdate");
AZ_PROFILE_SCOPE(RPI, "PassSystem: FrameUpdate");
ResetFrameStatistics();
ProcessQueuedChanges();
@@ -317,14 +313,14 @@ namespace AZ
Pass::FramePrepareParams params{ &frameGraphBuilder };
{
AZ_ATOM_PROFILE_TIME_GROUP_REGION("RPI", "Pass: FrameBegin");
AZ_PROFILE_SCOPE(RPI, "Pass: FrameBegin");
m_rootPass->FrameBegin(params);
}
}
void PassSystem::FrameEnd()
{
AZ_ATOM_PROFILE_FUNCTION("RHI", "PassSystem: FrameEnd");
AZ_PROFILE_SCOPE(RHI, "PassSystem: FrameEnd");
m_state = PassSystemState::FrameEnd;