Add Windows PIX runtime support
Signed-off-by: Jeremy Ong <jcong@amazon.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
.vscode/
|
||||
__pycache__
|
||||
AssetProcessorTemp/**
|
||||
CMakeUserPresets.json
|
||||
[Bb]uild/**
|
||||
[Oo]ut/**
|
||||
[Cc]ache/
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
#include <AzCore/std/functional.h>
|
||||
#include <AzCore/Math/Crc.h>
|
||||
|
||||
#ifdef USE_PIX
|
||||
#include <AzCore/PlatformIncl.h>
|
||||
#include <WinPixEventRuntime/pix3.h>
|
||||
#endif
|
||||
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
namespace Debug
|
||||
@@ -495,6 +501,10 @@ namespace AZ
|
||||
ProfilerRegister*
|
||||
ProfilerRegister::TimerCreateAndStart(const char* systemName, const char* name, ProfilerSection * section, const char* function, int line)
|
||||
{
|
||||
#if defined(USE_PIX)
|
||||
PIXBeginEvent(PIX_COLOR(0, 0, 1), "%s:%s", name, function);
|
||||
#endif
|
||||
|
||||
AZStd::chrono::system_clock::time_point start = AZStd::chrono::system_clock::now();
|
||||
ProfilerRegister* reg = CreateRegister(systemName, name, function, line, ProfilerRegister::PRT_TIME);
|
||||
AZStd::chrono::system_clock::time_point end = AZStd::chrono::system_clock::now();
|
||||
@@ -537,6 +547,11 @@ namespace AZ
|
||||
void ProfilerRegister::TimerStart(ProfilerSection* section)
|
||||
{
|
||||
ProfilerRegister* reg = this;
|
||||
|
||||
#if defined(USE_PIX)
|
||||
PIXBeginEvent(PIX_COLOR(0, 0, 1), "%s:%s", reg->m_name, reg->m_function);
|
||||
#endif
|
||||
|
||||
if (reg->m_isActive)
|
||||
{
|
||||
section->m_register = reg;
|
||||
@@ -555,6 +570,10 @@ namespace AZ
|
||||
//=========================================================================
|
||||
void ProfilerRegister::TimerStop()
|
||||
{
|
||||
#if defined(USE_PIX)
|
||||
PIXEndEvent();
|
||||
#endif
|
||||
|
||||
AZStd::chrono::system_clock::time_point end = AZStd::chrono::system_clock::now();
|
||||
ProfilerSection* section = m_threadData->m_stack.back();
|
||||
AZStd::chrono::microseconds elapsedTime = end - section->m_start;
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
#ifndef AZCORE_PROFILER_H
|
||||
#define AZCORE_PROFILER_H 1
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/std/chrono/chrono.h>
|
||||
#include <AzCore/std/function/function_fwd.h>
|
||||
@@ -615,5 +614,3 @@ namespace AZ
|
||||
}
|
||||
} // namespace AZ
|
||||
|
||||
#endif // AZCORE_PROFILER_H
|
||||
#pragma once
|
||||
|
||||
@@ -19,6 +19,12 @@ if(LY_RAD_TELEMETRY_ENABLED)
|
||||
set(AZ_CORE_RADTELEMETRY_BUILD_DEPENDENCIES 3rdParty::RadTelemetry)
|
||||
endif()
|
||||
|
||||
if(PAL_TRAIT_PROF_PIX_SUPPORTED AND LY_PIX_ENABLED)
|
||||
set(LY_PIX_PATH "${LY_3RDPARTY_PATH}/winpixeventruntime" CACHE PATH "Path to the Windows Pix Event Runtime.")
|
||||
set(AZ_CORE_PIX_BUILD_DEPENDENCIES 3rdParty::pix)
|
||||
set(AZ_CORE_PIX_BUILD_DEFINES "USE_PIX")
|
||||
endif()
|
||||
|
||||
ly_add_target(
|
||||
NAME AzCore STATIC
|
||||
NAMESPACE AZ
|
||||
@@ -45,6 +51,10 @@ ly_add_target(
|
||||
3rdParty::zstd
|
||||
3rdParty::cityhash
|
||||
${AZ_CORE_RADTELEMETRY_BUILD_DEPENDENCIES}
|
||||
${AZ_CORE_PIX_BUILD_DEPENDENCIES}
|
||||
COMPILE_DEFINITIONS
|
||||
PUBLIC
|
||||
${AZ_CORE_PIX_BUILD_DEFINES}
|
||||
)
|
||||
ly_add_source_properties(
|
||||
SOURCES
|
||||
|
||||
@@ -12,10 +12,8 @@ ly_get_list_relative_pal_filename(pal_source_dir ${CMAKE_CURRENT_LIST_DIR}/Sourc
|
||||
include(${pal_source_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) # PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED
|
||||
|
||||
if(PAL_TRAIT_PIX_AVAILABLE)
|
||||
set(USE_PIX_DEFINE "USE_PIX")
|
||||
set(PIX_BUILD_DEPENDENCY "3rdParty::pix")
|
||||
else()
|
||||
set(USE_PIX_DEFINE "")
|
||||
set(PIX_BUILD_DEPENDENCY "")
|
||||
endif()
|
||||
|
||||
@@ -94,9 +92,6 @@ ly_add_target(
|
||||
AZ::AzCore
|
||||
${PIX_BUILD_DEPENDENCY}
|
||||
Gem::Atom_RHI.Reflect
|
||||
COMPILE_DEFINITIONS
|
||||
PRIVATE
|
||||
${USE_PIX_DEFINE}
|
||||
)
|
||||
|
||||
ly_add_target(
|
||||
@@ -124,7 +119,6 @@ ly_add_target(
|
||||
${PIX_BUILD_DEPENDENCY}
|
||||
COMPILE_DEFINITIONS
|
||||
PRIVATE
|
||||
${USE_PIX_DEFINE}
|
||||
${USE_NSIGHT_AFTERMATH_DEFINE}
|
||||
|
||||
)
|
||||
@@ -149,9 +143,6 @@ ly_add_target(
|
||||
Gem::Atom_RHI_DX12.Reflect
|
||||
Gem::Atom_RHI_DX12.Private.Static
|
||||
${PIX_BUILD_DEPENDENCY}
|
||||
COMPILE_DEFINITIONS
|
||||
PRIVATE
|
||||
${USE_PIX_DEFINE}
|
||||
)
|
||||
|
||||
if(PAL_TRAIT_BUILD_HOST_TOOLS)
|
||||
|
||||
@@ -7,5 +7,4 @@
|
||||
#
|
||||
|
||||
set(PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED FALSE)
|
||||
set(PAL_TRAIT_PIX_AVAILABLE FALSE)
|
||||
set(PAL_TRAIT_AFTERMATH_AVAILABLE FALSE)
|
||||
|
||||
@@ -7,5 +7,4 @@
|
||||
#
|
||||
|
||||
set(PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED FALSE)
|
||||
set(PAL_TRAIT_PIX_AVAILABLE FALSE)
|
||||
set(PAL_TRAIT_AFTERMATH_AVAILABLE FALSE)
|
||||
|
||||
@@ -7,5 +7,4 @@
|
||||
#
|
||||
|
||||
set(PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED FALSE)
|
||||
set(PAL_TRAIT_PIX_AVAILABLE FALSE)
|
||||
set(PAL_TRAIT_AFTERMATH_AVAILABLE FALSE)
|
||||
|
||||
@@ -21,18 +21,6 @@ endif()
|
||||
set(PAL_TRAIT_PIX_AVAILABLE FALSE)
|
||||
unset(pix3_header CACHE)
|
||||
|
||||
file(TO_CMAKE_PATH "$ENV{ATOM_PIX_PATH}" ATOM_PIX_PATH_CMAKE_FORMATTED)
|
||||
find_file(pix3_header
|
||||
pix3.h
|
||||
PATHS
|
||||
"${ATOM_PIX_PATH_CMAKE_FORMATTED}/Include/WinPixEventRuntime"
|
||||
)
|
||||
|
||||
mark_as_advanced(pix3_header)
|
||||
if(pix3_header)
|
||||
set(PAL_TRAIT_PIX_AVAILABLE TRUE)
|
||||
endif()
|
||||
|
||||
set(PAL_TRAIT_AFTERMATH_AVAILABLE FALSE)
|
||||
unset(aftermath_header CACHE)
|
||||
file(TO_CMAKE_PATH "$ENV{ATOM_AFTERMATH_PATH}" ATOM_AFTERMATH_PATH_CMAKE_FORMATTED)
|
||||
|
||||
@@ -7,5 +7,4 @@
|
||||
#
|
||||
|
||||
set(PAL_TRAIT_ATOM_RHI_DX12_SUPPORTED FALSE)
|
||||
set(PAL_TRAIT_PIX_AVAILABLE FALSE)
|
||||
set(PAL_TRAIT_AFTERMATH_AVAILABLE FALSE)
|
||||
|
||||
@@ -6,15 +6,14 @@
|
||||
#
|
||||
#
|
||||
|
||||
file(TO_CMAKE_PATH "$ENV{ATOM_PIX_PATH}" ATOM_PIX_PATH_CMAKE_FORMATTED)
|
||||
if(LY_PIX_ENABLED)
|
||||
file(TO_CMAKE_PATH "${LY_PIX_PATH}" PIX_PATH)
|
||||
message(STATUS "PIX PATH ${PIX_PATH}")
|
||||
|
||||
if(EXISTS "${ATOM_PIX_PATH_CMAKE_FORMATTED}/include/WinPixEventRuntime/pix3.h")
|
||||
ly_add_external_target(
|
||||
NAME pix
|
||||
3RDPARTY_ROOT_DIRECTORY "${PIX_PATH}"
|
||||
VERSION
|
||||
3RDPARTY_ROOT_DIRECTORY ${ATOM_PIX_PATH_CMAKE_FORMATTED}
|
||||
INCLUDE_DIRECTORIES include
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
+1
-1
@@ -11,4 +11,4 @@ if(LY_MONOLITHIC_GAME)
|
||||
else()
|
||||
set(PIX_LIBS ${BASE_PATH}/bin/x64/WinPixEventRuntime.lib)
|
||||
set(PIX_RUNTIME_DEPENDENCIES ${BASE_PATH}/bin/x64/WinPixEventRuntime.dll)
|
||||
endif()
|
||||
endif()
|
||||
Vendored
+1
@@ -9,6 +9,7 @@
|
||||
set(FILES
|
||||
BuiltInPackages.cmake
|
||||
FindOpenGLInterface.cmake
|
||||
FindPIX.cmake
|
||||
FindRadTelemetry.cmake
|
||||
FindVkValidation.cmake
|
||||
FindWwise.cmake
|
||||
|
||||
@@ -18,6 +18,8 @@ ly_set(PAL_TRAIT_BUILD_UNITY_EXCLUDE_EXTENSIONS)
|
||||
ly_set(PAL_TRAIT_BUILD_EXCLUDE_ALL_TEST_RUNS_FROM_IDE TRUE)
|
||||
ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
|
||||
ly_set(PAL_TRAIT_PROF_PIX_SUPPORTED FALSE)
|
||||
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED FALSE)
|
||||
|
||||
@@ -18,6 +18,8 @@ ly_set(PAL_TRAIT_BUILD_UNITY_EXCLUDE_EXTENSIONS)
|
||||
ly_set(PAL_TRAIT_BUILD_EXCLUDE_ALL_TEST_RUNS_FROM_IDE FALSE)
|
||||
ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
|
||||
ly_set(PAL_TRAIT_PROF_PIX_SUPPORTED FALSE)
|
||||
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
|
||||
@@ -18,6 +18,8 @@ ly_set(PAL_TRAIT_BUILD_UNITY_EXCLUDE_EXTENSIONS ".mm")
|
||||
ly_set(PAL_TRAIT_BUILD_EXCLUDE_ALL_TEST_RUNS_FROM_IDE FALSE)
|
||||
ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
|
||||
ly_set(PAL_TRAIT_PROF_PIX_SUPPORTED FALSE)
|
||||
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
|
||||
@@ -18,6 +18,8 @@ ly_set(PAL_TRAIT_BUILD_UNITY_EXCLUDE_EXTENSIONS)
|
||||
ly_set(PAL_TRAIT_BUILD_EXCLUDE_ALL_TEST_RUNS_FROM_IDE FALSE)
|
||||
ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED TRUE)
|
||||
|
||||
ly_set(PAL_TRAIT_PROF_PIX_SUPPORTED TRUE)
|
||||
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED TRUE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED TRUE)
|
||||
|
||||
@@ -18,6 +18,8 @@ ly_set(PAL_TRAIT_BUILD_UNITY_EXCLUDE_EXTENSIONS ".mm")
|
||||
ly_set(PAL_TRAIT_BUILD_EXCLUDE_ALL_TEST_RUNS_FROM_IDE TRUE)
|
||||
ly_set(PAL_TRAIT_BUILD_CPACK_SUPPORTED FALSE)
|
||||
|
||||
ly_set(PAL_TRAIT_PROF_PIX_SUPPORTED FALSE)
|
||||
|
||||
# Test library support
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_TEST_SUPPORTED FALSE)
|
||||
ly_set(PAL_TRAIT_TEST_GOOGLE_BENCHMARK_SUPPORTED FALSE)
|
||||
|
||||
Reference in New Issue
Block a user