Combined transform systems

Profiler window calls count
Parallel transform system is now in the normal transform system
Removed unused parent system
This commit is contained in:
max
2024-10-20 03:51:59 +02:00
parent 82fe47f627
commit 2c84e650d6
6 changed files with 66 additions and 169 deletions

View File

@@ -78,34 +78,37 @@ namespace Nerfed.Editor.Systems
ImGui.BeginChild("Combined", new System.Numerics.Vector2(0, 0));
// Gather combined data.
Dictionary<string, double> combinedRecordData = new Dictionary<string, double>(128);
Dictionary<string, (double ms, uint calls)> combinedRecordData = new Dictionary<string, (double ms, uint calls)>(128);
foreach (Profiler.ProfileRecord record in frameData.records)
{
if (combinedRecordData.TryGetValue(record.label, out double totalMs))
if (combinedRecordData.TryGetValue(record.label, out (double ms, uint calls) combined))
{
combinedRecordData[record.label] = totalMs + record.ElapsedMilliseconds();
combinedRecordData[record.label] = (combined.ms + record.ElapsedMilliseconds(), combined.calls + 1);
}
else
{
combinedRecordData.Add(record.label, record.ElapsedMilliseconds());
combinedRecordData.Add(record.label, (record.ElapsedMilliseconds(), 1));
}
}
IOrderedEnumerable<KeyValuePair<string, double>> orderedCombinedData = combinedRecordData.OrderByDescending(x => x.Value);
IOrderedEnumerable<KeyValuePair<string, (double ms, uint calls)>> orderedCombinedData = combinedRecordData.OrderByDescending(x => x.Value.ms);
if (ImGui.BeginTable("ProfilerCombinedData", 2, tableFlags, new System.Numerics.Vector2(0, 0)))
if (ImGui.BeginTable("ProfilerCombinedData", 3, tableFlags, new System.Numerics.Vector2(0, 0)))
{
ImGui.TableSetupColumn("name", ImGuiTableColumnFlags.WidthStretch, 0.8f, 0);
ImGui.TableSetupColumn("name", ImGuiTableColumnFlags.WidthStretch, 0.6f, 0);
ImGui.TableSetupColumn("ms", ImGuiTableColumnFlags.WidthStretch, 0.2f, 1);
ImGui.TableSetupColumn("calls", ImGuiTableColumnFlags.WidthStretch, 0.2f, 2);
ImGui.TableSetupScrollFreeze(0, 1); // Make row always visible
ImGui.TableHeadersRow();
foreach (KeyValuePair<string, double> combinedData in orderedCombinedData)
foreach (KeyValuePair<string, (double ms, uint calls)> combinedData in orderedCombinedData)
{
ImGui.TableNextRow();
ImGui.TableNextColumn();
ImGui.Text($"{combinedData.Key}");
ImGui.TableNextColumn();
ImGui.Text($"{combinedData.Value:0.000}");
ImGui.Text($"{combinedData.Value.ms:0.000}");
ImGui.TableNextColumn();
ImGui.Text($"{combinedData.Value.calls}");
}
ImGui.EndTable();