Skip to content

Commit ae2cbc5

Browse files
Merge pull request #386 from GameTechDev/feature/merge-candidate-omni
Feature/merge candidate omni
2 parents b71fc43 + 66d88c5 commit ae2cbc5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+5094
-411
lines changed

.gitignore

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,20 @@ ipch/
3232
*.vspx
3333
*.sap
3434

35+
3536
# Commandline extension args
36-
IntelPresentMon/AppCef/CefNano.args.json
37-
IntelPresentMon/PresentMonService/PresentMonService.args.json
38-
PresentMon/PresentMon.args.json
3937
PresentData/PresentData.args.json
4038

39+
# Make sure internal source isn't unintentionally committed to public repositories
40+
IntelPresentMon/PresentMonAPI2/Internal.h
41+
42+
# Reflector Tool
43+
Reflector/bin/**
44+
Reflector/obj/**
45+
46+
# Misc ephermeral files
4147
IntelPresentMon/SampleClient/log.txt
4248

43-
IntelPresentMon/PresentMonAPI2/Internal.h
49+
ETLTrimmer/Release/ETLTrimmer.Build.CppClean.log
50+
51+
ETLTrimmer/Release/ETLTrimmer.vcxproj.FileListAbsolute.txt

ETLTrimmer/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.etl
2+
/x64

ETLTrimmer/CliOptions.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#pragma once
2+
#include "../IntelPresentMon/CommonUtilities/cli/CliFramework.h"
3+
#include <ranges>
4+
5+
namespace clio
6+
{
7+
using namespace pmon::util::cli;
8+
struct Options : public OptionsBase<Options>
9+
{
10+
private: Group gf_{ this, "Files", "Input and output file paths" }; public:
11+
Option<std::string> inputFile{ this, "--input-file", "", "Path to input file to use", [this](CLI::Option* pOpt) {
12+
pOpt->required();
13+
} };
14+
Option<std::string> outputFile{ this, "--output-file", "", "Path for the trimmed output file. Omitting this enables analysis-only mode" };
15+
16+
private: Group gt_{ this, "Trimming", "Options for trimming and pruning events" }; public:
17+
Flag provider{ this, "--provider,-p", "Enable pruning by provider (uses same provider set as PresentMon)" };
18+
Flag event{ this, "--event,-e", "Enable pruning by event (uses same event set as PresentMon)" };
19+
Flag trimState{ this, "--trim-state,-s", "Override default behavior that avoids discarding stateful events like process and DC start/stop when trimming by timestamp range" };
20+
Option<std::pair<uint64_t, uint64_t>> trimRangeQpc{ this, "--trim-range-qpc", {}, "Range of QPC timestamps outside of which to trim", RemoveCommas };
21+
Option<std::pair<uint64_t, uint64_t>> trimRangeNs{ this, "--trim-range-ns", {}, "Range of nanosecond times outside of which to trim", RemoveCommas };
22+
Option<std::pair<double, double>> trimRangeMs{ this, "--trim-range-ms", {}, "Range of millisecond times outside of which to trim" };
23+
24+
static constexpr const char* description = "Postprocessing tool for trimming and pruning ETL files";
25+
static constexpr const char* name = "ETLTrimmer.exe";
26+
private:
27+
Dependency eventDep_{ event, provider };
28+
MutualExclusion trimRangeExcl_{ trimRangeQpc, trimRangeNs, trimRangeMs };
29+
};
30+
}

ETLTrimmer/ETLTrimmer.args.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"FileVersion": 2,
3+
"Id": "f9bd47f5-4aa3-4ba3-91f2-2ac7b270299c",
4+
"Items": [
5+
{
6+
"Id": "0f02ddbd-6110-43dd-982a-900bffd8549c",
7+
"Command": "--input-file original.etl"
8+
},
9+
{
10+
"Id": "ca527fdf-cf0c-4bc6-a5e5-362394a8487d",
11+
"Command": "--output-file output-trim-start.etl"
12+
},
13+
{
14+
"Id": "df1b242f-0b8c-4871-9bf8-6877fca7a4f1",
15+
"Command": "--trim-range-qpc 114450000000 114550000000"
16+
},
17+
{
18+
"Id": "fc5883f2-a0e9-4d45-8e95-199ec1c499d2",
19+
"Command": "--trim-range-ms 15000 17000"
20+
},
21+
{
22+
"Id": "d5415649-1bf4-47d6-bf82-fcdaba5ee851",
23+
"Command": "--trim-range-ns 15,000,000,000 17,000,000,000"
24+
},
25+
{
26+
"Id": "a220f802-99a4-436a-b30f-821a39c2042e",
27+
"Command": "-pe"
28+
},
29+
{
30+
"Id": "72aa3f3a-db72-48e5-93ec-11ef00ccf00e",
31+
"Command": "--trim-state"
32+
},
33+
{
34+
"Id": "ee3aa6c6-1568-4347-8847-ad556ceedbdd",
35+
"Command": "--help"
36+
}
37+
]
38+
}

ETLTrimmer/ETLTrimmer.vcxproj

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|Win32">
5+
<Configuration>Debug</Configuration>
6+
<Platform>Win32</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release|Win32">
9+
<Configuration>Release</Configuration>
10+
<Platform>Win32</Platform>
11+
</ProjectConfiguration>
12+
<ProjectConfiguration Include="Debug|x64">
13+
<Configuration>Debug</Configuration>
14+
<Platform>x64</Platform>
15+
</ProjectConfiguration>
16+
<ProjectConfiguration Include="Release|x64">
17+
<Configuration>Release</Configuration>
18+
<Platform>x64</Platform>
19+
</ProjectConfiguration>
20+
</ItemGroup>
21+
<PropertyGroup Label="Globals">
22+
<VCProjectVersion>17.0</VCProjectVersion>
23+
<Keyword>Win32Proj</Keyword>
24+
<ProjectGuid>{f9bd47f5-4aa3-4ba3-91f2-2ac7b270299c}</ProjectGuid>
25+
<RootNamespace>ETLTrimmer</RootNamespace>
26+
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
27+
</PropertyGroup>
28+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
30+
<ConfigurationType>Application</ConfigurationType>
31+
<UseDebugLibraries>true</UseDebugLibraries>
32+
<PlatformToolset>v143</PlatformToolset>
33+
<CharacterSet>Unicode</CharacterSet>
34+
</PropertyGroup>
35+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
36+
<ConfigurationType>Application</ConfigurationType>
37+
<UseDebugLibraries>false</UseDebugLibraries>
38+
<PlatformToolset>v143</PlatformToolset>
39+
<WholeProgramOptimization>true</WholeProgramOptimization>
40+
<CharacterSet>Unicode</CharacterSet>
41+
</PropertyGroup>
42+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
43+
<ConfigurationType>Application</ConfigurationType>
44+
<UseDebugLibraries>true</UseDebugLibraries>
45+
<PlatformToolset>v143</PlatformToolset>
46+
<CharacterSet>Unicode</CharacterSet>
47+
</PropertyGroup>
48+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
49+
<ConfigurationType>Application</ConfigurationType>
50+
<UseDebugLibraries>false</UseDebugLibraries>
51+
<PlatformToolset>v143</PlatformToolset>
52+
<WholeProgramOptimization>true</WholeProgramOptimization>
53+
<CharacterSet>Unicode</CharacterSet>
54+
</PropertyGroup>
55+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
56+
<ImportGroup Label="ExtensionSettings">
57+
</ImportGroup>
58+
<ImportGroup Label="Shared">
59+
</ImportGroup>
60+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
61+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
62+
</ImportGroup>
63+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
64+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
65+
</ImportGroup>
66+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
67+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
68+
<Import Project="..\vcpkg.props" />
69+
</ImportGroup>
70+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
71+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
72+
<Import Project="..\vcpkg.props" />
73+
</ImportGroup>
74+
<PropertyGroup Label="UserMacros" />
75+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
76+
<OutDir>..\build\$(Configuration)\</OutDir>
77+
<IntDir>..\build\obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
78+
</PropertyGroup>
79+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
80+
<OutDir>..\build\$(Configuration)\</OutDir>
81+
<IntDir>..\build\obj\$(ProjectName)-$(Platform)-$(Configuration)\</IntDir>
82+
</PropertyGroup>
83+
<PropertyGroup Label="Vcpkg">
84+
<VcpkgEnabled>true</VcpkgEnabled>
85+
<VcpkgEnableManifest>true</VcpkgEnableManifest>
86+
</PropertyGroup>
87+
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
88+
<VcpkgUseStatic>true</VcpkgUseStatic>
89+
<VcpkgHostTriplet>x64-windows-static</VcpkgHostTriplet>
90+
</PropertyGroup>
91+
<PropertyGroup Label="Vcpkg" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
92+
<VcpkgUseStatic>true</VcpkgUseStatic>
93+
<VcpkgHostTriplet>x64-windows-static</VcpkgHostTriplet>
94+
</PropertyGroup>
95+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
96+
<ClCompile>
97+
<WarningLevel>Level3</WarningLevel>
98+
<SDLCheck>true</SDLCheck>
99+
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
100+
<ConformanceMode>true</ConformanceMode>
101+
<LanguageStandard>stdcpplatest</LanguageStandard>
102+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
103+
</ClCompile>
104+
<Link>
105+
<SubSystem>Console</SubSystem>
106+
<GenerateDebugInformation>true</GenerateDebugInformation>
107+
</Link>
108+
</ItemDefinitionGroup>
109+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
110+
<ClCompile>
111+
<WarningLevel>Level3</WarningLevel>
112+
<FunctionLevelLinking>true</FunctionLevelLinking>
113+
<IntrinsicFunctions>true</IntrinsicFunctions>
114+
<SDLCheck>true</SDLCheck>
115+
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
116+
<ConformanceMode>true</ConformanceMode>
117+
<LanguageStandard>stdcpplatest</LanguageStandard>
118+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
119+
</ClCompile>
120+
<Link>
121+
<SubSystem>Console</SubSystem>
122+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
123+
<OptimizeReferences>true</OptimizeReferences>
124+
<GenerateDebugInformation>true</GenerateDebugInformation>
125+
</Link>
126+
</ItemDefinitionGroup>
127+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
128+
<ClCompile>
129+
<WarningLevel>Level3</WarningLevel>
130+
<SDLCheck>true</SDLCheck>
131+
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
132+
<ConformanceMode>true</ConformanceMode>
133+
<LanguageStandard>stdcpplatest</LanguageStandard>
134+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
135+
</ClCompile>
136+
<Link>
137+
<SubSystem>Console</SubSystem>
138+
<GenerateDebugInformation>true</GenerateDebugInformation>
139+
<AdditionalDependencies>tdh.lib;%(AdditionalDependencies)</AdditionalDependencies>
140+
</Link>
141+
</ItemDefinitionGroup>
142+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
143+
<ClCompile>
144+
<WarningLevel>Level3</WarningLevel>
145+
<FunctionLevelLinking>true</FunctionLevelLinking>
146+
<IntrinsicFunctions>true</IntrinsicFunctions>
147+
<SDLCheck>true</SDLCheck>
148+
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
149+
<ConformanceMode>true</ConformanceMode>
150+
<LanguageStandard>stdcpplatest</LanguageStandard>
151+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
152+
</ClCompile>
153+
<Link>
154+
<SubSystem>Console</SubSystem>
155+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
156+
<OptimizeReferences>true</OptimizeReferences>
157+
<GenerateDebugInformation>true</GenerateDebugInformation>
158+
<AdditionalDependencies>tdh.lib;%(AdditionalDependencies)</AdditionalDependencies>
159+
</Link>
160+
</ItemDefinitionGroup>
161+
<ItemGroup>
162+
<ClCompile Include="main.cpp" />
163+
</ItemGroup>
164+
<ItemGroup>
165+
<ProjectReference Include="..\IntelPresentMon\CommonUtilities\CommonUtilities.vcxproj">
166+
<Project>{08a704d8-ca1c-45e9-8ede-542a1a43b53e}</Project>
167+
</ProjectReference>
168+
<ProjectReference Include="..\PresentData\PresentData.vcxproj">
169+
<Project>{892028e5-32f6-45fc-8ab2-90fcbcac4bf6}</Project>
170+
</ProjectReference>
171+
</ItemGroup>
172+
<ItemGroup>
173+
<ClInclude Include="CliOptions.h" />
174+
</ItemGroup>
175+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
176+
<ImportGroup Label="ExtensionTargets">
177+
</ImportGroup>
178+
</Project>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Source Files">
5+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6+
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7+
</Filter>
8+
<Filter Include="Header Files">
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
11+
</Filter>
12+
<Filter Include="Resource Files">
13+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14+
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15+
</Filter>
16+
</ItemGroup>
17+
<ItemGroup>
18+
<ClCompile Include="main.cpp">
19+
<Filter>Source Files</Filter>
20+
</ClCompile>
21+
</ItemGroup>
22+
<ItemGroup>
23+
<ClInclude Include="CliOptions.h">
24+
<Filter>Source Files</Filter>
25+
</ClInclude>
26+
</ItemGroup>
27+
</Project>

0 commit comments

Comments
 (0)