[development] Android trace support (#7021)
- Abstracted the platform specific low level profiler API - Added support for ATrace markers on Android - Stubbed iOS, Linux, and macOS with unimplemented versions of the low level platform profiler API Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <AzCore/std/string/fixed_string.h>
|
||||
|
||||
#include <android/trace.h>
|
||||
|
||||
namespace AZ::Debug::Platform
|
||||
{
|
||||
template<typename... T>
|
||||
void BeginProfileRegion([[maybe_unused]] Budget* budget, const char* eventName, T const&... args)
|
||||
{
|
||||
// ideally this would be smaller but AZ_PROFILE_FUNCTION produces some long event names
|
||||
using EventNameString = AZStd::fixed_string<512>;
|
||||
|
||||
AZ_PUSH_DISABLE_WARNING(, "-Wformat-security")
|
||||
EventNameString fullEventName = EventNameString::format(eventName, args...);
|
||||
AZ_POP_DISABLE_WARNING
|
||||
|
||||
ATrace_beginSection(fullEventName.c_str());
|
||||
}
|
||||
|
||||
inline void BeginProfileRegion([[maybe_unused]] Budget* budget, const char* eventName)
|
||||
{
|
||||
ATrace_beginSection(eventName);
|
||||
}
|
||||
|
||||
inline void EndProfileRegion([[maybe_unused]] Budget* budget)
|
||||
{
|
||||
ATrace_endSection();
|
||||
}
|
||||
} // namespace AZ::Debug::Platform
|
||||
+1
-2
@@ -5,6 +5,5 @@
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <../Common/Default/AzCore/IO/Streamer/StreamerContext_Default.h>
|
||||
#include <AzCore/Debug/Profiler_Android.inl>
|
||||
@@ -81,6 +81,8 @@ set(FILES
|
||||
../../AzCore/Android/JNI/Internal/JStringUtils_impl.h
|
||||
../../AzCore/Android/JNI/Internal/Object_impl.h
|
||||
../../AzCore/Android/JNI/Internal/Signature_impl.h
|
||||
AzCore/Debug/Profiler_Platform.inl
|
||||
AzCore/Debug/Profiler_Android.inl
|
||||
)
|
||||
if (LY_TEST_PROJECT)
|
||||
ly_add_source_properties(
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
namespace AZ::Debug::Platform
|
||||
{
|
||||
template<typename... T>
|
||||
void BeginProfileRegion([[maybe_unused]] Budget* budget, [[maybe_unused]] const char* eventName, [[maybe_unused]] T const&... args)
|
||||
{
|
||||
}
|
||||
|
||||
inline void BeginProfileRegion([[maybe_unused]] Budget* budget, [[maybe_unused]] const char* eventName)
|
||||
{
|
||||
}
|
||||
|
||||
inline void EndProfileRegion([[maybe_unused]] Budget* budget)
|
||||
{
|
||||
}
|
||||
} // namespace AZ::Debug::Platform
|
||||
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef USE_PIX
|
||||
#include <AzCore/PlatformIncl.h>
|
||||
#include <WinPixEventRuntime/pix3.h>
|
||||
#endif
|
||||
|
||||
namespace AZ::Debug::Platform
|
||||
{
|
||||
template<typename... T>
|
||||
void BeginProfileRegion([[maybe_unused]] Budget* budget, [[maybe_unused]] const char* eventName, [[maybe_unused]] T const&... args)
|
||||
{
|
||||
#ifdef USE_PIX
|
||||
PIXBeginEvent(PIX_COLOR_INDEX(budget->Crc() & 0xff), eventName, args...);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void BeginProfileRegion([[maybe_unused]] Budget* budget, [[maybe_unused]] const char* eventName)
|
||||
{
|
||||
#ifdef USE_PIX
|
||||
PIXBeginEvent(PIX_COLOR_INDEX(budget->Crc() & 0xff), eventName);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void EndProfileRegion([[maybe_unused]] Budget* budget)
|
||||
{
|
||||
#ifdef USE_PIX
|
||||
PIXEndEvent();
|
||||
#endif
|
||||
}
|
||||
} // namespace AZ::Debug::Platform
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl>
|
||||
@@ -66,4 +66,6 @@ set(FILES
|
||||
../Common/UnixLike/AzCore/std/time_UnixLike.cpp
|
||||
AzCore/Utils/Utils_Linux.cpp
|
||||
../Common/UnixLike/AzCore/Utils/Utils_UnixLike.cpp
|
||||
AzCore/Debug/Profiler_Platform.inl
|
||||
../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl
|
||||
)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl>
|
||||
@@ -69,4 +69,6 @@ set(FILES
|
||||
AzCore/Utils/Utils_Mac.cpp
|
||||
../Common/Apple/AzCore/Utils/Utils_Apple.cpp
|
||||
../Common/UnixLike/AzCore/Utils/Utils_UnixLike.cpp
|
||||
AzCore/Debug/Profiler_Platform.inl
|
||||
../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl
|
||||
)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <../Common/WinAPI/AzCore/Debug/Profiler_WinAPI.inl>
|
||||
@@ -72,4 +72,6 @@ set(FILES
|
||||
AzCore/std/time_Windows.cpp
|
||||
../Common/WinAPI/AzCore/Utils/Utils_WinAPI.cpp
|
||||
AzCore/Utils/Utils_Windows.cpp
|
||||
AzCore/Debug/Profiler_Platform.inl
|
||||
../Common/WinAPI/AzCore/Debug/Profiler_WinAPI.inl
|
||||
)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl>
|
||||
@@ -67,4 +67,6 @@ set(FILES
|
||||
AzCore/Utils/Utils_iOS.mm
|
||||
../Common/Apple/AzCore/Utils/Utils_Apple.cpp
|
||||
../Common/UnixLike/AzCore/Utils/Utils_UnixLike.cpp
|
||||
AzCore/Debug/Profiler_Platform.inl
|
||||
../Common/Unimplemented/AzCore/Debug/Profiler_Unimplemented.inl
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user