From 038c35fbdade9e3ca9e98c835dfcf3d0bc84e7c3 Mon Sep 17 00:00:00 2001 From: Pixelflinger Date: Wed, 27 May 2020 23:18:37 -0700 Subject: [PATCH] add a few systraces during init --- filament/backend/src/Platform.cpp | 3 +++ filament/src/Engine.cpp | 29 ++++++++++++++++------------- filament/src/Tonemapper.cpp | 3 +++ 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/filament/backend/src/Platform.cpp b/filament/backend/src/Platform.cpp index 94b4eb8e83..2be96e438f 100644 --- a/filament/backend/src/Platform.cpp +++ b/filament/backend/src/Platform.cpp @@ -16,6 +16,8 @@ #include +#include + #if defined(ANDROID) #ifndef FILAMENT_USE_EXTERNAL_GLES3 #include "opengl/PlatformEGLAndroid.h" @@ -77,6 +79,7 @@ Platform::~Platform() noexcept = default; // responsible for destroying it. Initialization of the backend API is deferred until // createDriver(). The passed-in backend hint is replaced with the resolved backend. DefaultPlatform* DefaultPlatform::create(Backend* backend) noexcept { + SYSTRACE_CALL(); assert(backend); if (*backend == Backend::DEFAULT) { *backend = Backend::OPENGL; diff --git a/filament/src/Engine.cpp b/filament/src/Engine.cpp index b915521ee1..aadb59340e 100644 --- a/filament/src/Engine.cpp +++ b/filament/src/Engine.cpp @@ -59,6 +59,9 @@ using namespace backend; using namespace filaflat; FEngine* FEngine::create(Backend backend, Platform* platform, void* sharedGLContext) { + SYSTRACE_ENABLE(); + SYSTRACE_CALL(); + FEngine* instance = new FEngine(backend, platform, sharedGLContext); slog.i << "FEngine (" << sizeof(void*) * 8 << " bits) created at " << instance << " " @@ -131,8 +134,6 @@ FEngine::FEngine(Backend backend, Platform* platform, void* sharedGLContext) : mEngineEpoch(std::chrono::steady_clock::now()), mDriverBarrier(1) { - SYSTRACE_ENABLE(); - // we're assuming we're on the main thread here. // (it may not be the case) mJobSystem.adopt(); @@ -144,6 +145,8 @@ FEngine::FEngine(Backend backend, Platform* platform, void* sharedGLContext) : */ void FEngine::init() { + SYSTRACE_CALL(); + // this must be first. mCommandStream = CommandStream(*mDriver, mCommandBufferQueue.getCircularBuffer()); DriverApi& driverApi = getDriverApi(); @@ -205,6 +208,8 @@ void FEngine::init() { } FEngine::~FEngine() noexcept { + SYSTRACE_CALL(); + ASSERT_DESTRUCTOR(mTerminated, "Engine destroyed but not terminated!"); delete mResourceAllocator; delete mDriver; @@ -214,6 +219,8 @@ FEngine::~FEngine() noexcept { } void FEngine::shutdown() { + SYSTRACE_CALL(); + #ifndef NDEBUG // print out some statistics about this run size_t wm = mCommandBufferQueue.getHigWatermark(); @@ -397,29 +404,25 @@ int FEngine::loop() { if (mPlatform == nullptr) { mPlatform = DefaultPlatform::create(&mBackend); mOwnPlatform = true; - slog.d << "FEngine resolved backend: "; + const char* backend = nullptr; switch (mBackend) { case backend::Backend::NOOP: - slog.d << "Noop"; + backend = "Noop"; break; - case backend::Backend::OPENGL: - slog.d << "OpenGL"; + backend = "OpenGL"; break; - case backend::Backend::VULKAN: - slog.d << "Vulkan"; + backend = "Vulkan"; break; - case backend::Backend::METAL: - slog.d << "Metal"; + backend = "Metal"; break; - default: - slog.d << "Unknown"; + backend = "Unknown"; break; } - slog.d << io::endl; + slog.d << "FEngine resolved backend: " << backend << io::endl; if (mPlatform == nullptr) { slog.e << "Selected backend not supported in this build." << io::endl; mDriverBarrier.latch(); diff --git a/filament/src/Tonemapper.cpp b/filament/src/Tonemapper.cpp index d4846fc325..60682ee0c5 100644 --- a/filament/src/Tonemapper.cpp +++ b/filament/src/Tonemapper.cpp @@ -21,6 +21,7 @@ #include #include +#include // When defined, the ACES tone mapper will match the brightness of the "ACES sRGB" tone mapper // It is *not* correct, but it helps for compatibility @@ -37,6 +38,8 @@ using namespace backend; static constexpr size_t LUT_DIMENSION = 32u; Tonemapper::Tonemapper(FEngine& engine) { + SYSTRACE_CALL(); + DriverApi& driver = engine.getDriverApi(); constexpr size_t lutElementCount = LUT_DIMENSION * LUT_DIMENSION * LUT_DIMENSION;