[ATOM-15862] Fixing CPU profiler to save multiple regions within the same thread (#1636)
Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>
This commit is contained in:
@@ -134,7 +134,7 @@ namespace AZ
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
CpuProfilingStatisticsSerializer() = default;
|
||||
CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap);
|
||||
CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap);
|
||||
|
||||
AZStd::vector<CpuProfilingStatisticsSerializerEntry> m_cpuProfilingStatisticsSerializerEntries;
|
||||
};
|
||||
@@ -251,14 +251,17 @@ namespace AZ
|
||||
|
||||
// --- CpuProfilingStatisticsSerializer ---
|
||||
|
||||
CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap)
|
||||
CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap)
|
||||
{
|
||||
// Create serializable entries
|
||||
for (auto& treadEntry : timeRegionMap)
|
||||
for (auto& threadEntry : timeRegionMap)
|
||||
{
|
||||
for (auto& cachedRegionEntry : treadEntry.second)
|
||||
for (auto& cachedRegionEntry : threadEntry.second)
|
||||
{
|
||||
m_cpuProfilingStatisticsSerializerEntries.emplace_back(cachedRegionEntry.second);
|
||||
m_cpuProfilingStatisticsSerializerEntries.insert(
|
||||
m_cpuProfilingStatisticsSerializerEntries.end(),
|
||||
cachedRegionEntry.second.begin(),
|
||||
cachedRegionEntry.second.end());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -465,8 +468,7 @@ namespace AZ
|
||||
serializationSettings.m_keepDefaults = true;
|
||||
|
||||
// Get time Cpu profiled time regions
|
||||
RHI::CpuProfiler::TimeRegionMap timeRegionMap;
|
||||
RHI::CpuProfiler::Get()->FlushTimeRegionMap(timeRegionMap);
|
||||
const RHI::CpuProfiler::TimeRegionMap& timeRegionMap = RHI::CpuProfiler::Get()->GetTimeRegionMap();
|
||||
|
||||
CpuProfilingStatisticsSerializer serializer(timeRegionMap);
|
||||
const auto saveResult = JsonSerializationUtils::SaveObjectToFile(&serializer,
|
||||
|
||||
Reference in New Issue
Block a user