diff --git a/examples/common/entry/entry.cpp b/examples/common/entry/entry.cpp index 14bf75408..c99688ffa 100644 --- a/examples/common/entry/entry.cpp +++ b/examples/common/entry/entry.cpp @@ -378,7 +378,11 @@ BX_PRAGMA_DIAGNOSTIC_POP(); rmtError err = rmt_CreateGlobalInstance(&s_rmt); BX_WARN(RMT_ERROR_NONE != err, "Remotery failed to create global instance."); - if (RMT_ERROR_NONE != err) + if (RMT_ERROR_NONE == err) + { + rmt_SetCurrentThreadName("Main"); + } + else { s_rmt = NULL; } diff --git a/src/bgfx.cpp b/src/bgfx.cpp index a9fafe1e8..b75037ef8 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -1341,6 +1341,7 @@ namespace bgfx m_occlusionQuerySet.clear(); } + BGFX_PROFILER_SCOPE(bgfx, main_thread_frame, 0xff2040ff); // wait for render thread to finish renderSemWait(); frameNoRenderWait(); @@ -1416,7 +1417,7 @@ namespace bgfx bool Context::renderFrame() { - BGFX_PROFILER_SCOPE(bgfx, render_frame, 0xff2040ff) + BGFX_PROFILER_SCOPE(bgfx, render_frame, 0xff2040ff); if (m_rendererInitialized && !m_flipAfterRender) @@ -1429,6 +1430,7 @@ namespace bgfx rendererExecCommands(m_render->m_cmdPre); if (m_rendererInitialized) { + BGFX_PROFILER_SCOPE(bgfx, render_submit, 0xff2040ff); m_renderCtx->submit(m_render, m_clearQuad, m_textVideoMemBlitter); } rendererExecCommands(m_render->m_cmdPost); diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 12a18cab0..d9fa751b9 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -53,12 +53,15 @@ # if BGFX_CONFIG_PROFILER_MICROPROFILE # include # define BGFX_PROFILER_SCOPE(_group, _name, _color) MICROPROFILE_SCOPEI(#_group, #_name, _color) +# define BGFX_PROFILER_SET_CURRENT_THREAD_NAME(_name) BX_NOOP() # elif BGFX_CONFIG_PROFILER_REMOTERY # define RMT_ENABLED BGFX_CONFIG_PROFILER_REMOTERY # include # define BGFX_PROFILER_SCOPE(_group, _name, _color) rmt_ScopedCPUSample(_group##_##_name) +# define BGFX_PROFILER_SET_CURRENT_THREAD_NAME(_name) rmt_SetCurrentThreadName(_name) # else # define BGFX_PROFILER_SCOPE(_group, _name, _color) BX_NOOP() +# define BGFX_PROFILER_SET_CURRENT_THREAD_NAME(_name) BX_NOOP() # endif // BGFX_CONFIG_PROFILER_* #endif // BGFX_PROFILER_SCOPE @@ -2028,6 +2031,7 @@ namespace bgfx static int32_t renderThread(void* /*_userData*/) { BX_TRACE("render thread start"); + BGFX_PROFILER_SET_CURRENT_THREAD_NAME("bgfx - Render Thread"); while (RenderFrame::Exiting != bgfx::renderFrame() ) {}; BX_TRACE("render thread exit"); return EXIT_SUCCESS; @@ -3796,7 +3800,7 @@ namespace bgfx { if (!m_singleThreaded) { - BGFX_PROFILER_SCOPE(bgfx, main_thread_wait, 0xff2040ff) + BGFX_PROFILER_SCOPE(bgfx, main_thread_wait, 0xff2040ff); int64_t start = bx::getHPCounter(); bool ok = m_gameSem.wait(); BX_CHECK(ok, "Semaphore wait failed."); BX_UNUSED(ok); @@ -3816,7 +3820,7 @@ namespace bgfx { if (!m_singleThreaded) { - BGFX_PROFILER_SCOPE(bgfx, render_thread_wait, 0xff2040ff) + BGFX_PROFILER_SCOPE(bgfx, render_thread_wait, 0xff2040ff); int64_t start = bx::getHPCounter(); bool ok = m_renderSem.wait(); BX_CHECK(ok, "Semaphore wait failed."); BX_UNUSED(ok);