|
|
@@ -13,9 +13,24 @@
|
|
|
# include <windows.ui.xaml.media.dxinterop.h>
|
|
|
#endif // BX_PLATFORM_WINRT
|
|
|
|
|
|
+#if BGFX_CONFIG_PROFILER_REMOTERY
|
|
|
+# define BGFX_GPU_PROFILER_BIND(_device, _context) rmt_BindD3D11(_device, _context)
|
|
|
+# define BGFX_GPU_PROFILER_UNBIND() rmt_UnbindD3D11()
|
|
|
+# define BGFX_GPU_PROFILER_BEGIN(_group, _name, _color) rmt_BeginD3D11Sample(_group##_##_name)
|
|
|
+# define BGFX_GPU_PROFILER_BEGIN_DYNAMIC(_namestr) rmt_BeginD3D11SampleDynamic(_namestr)
|
|
|
+# define BGFX_GPU_PROFILER_END() rmt_EndD3D11Sample()
|
|
|
+#else
|
|
|
+# define BGFX_GPU_PROFILER_BIND(_device, _context) BX_NOOP()
|
|
|
+# define BGFX_GPU_PROFILER_UNBIND() BX_NOOP()
|
|
|
+# define BGFX_GPU_PROFILER_BEGIN(_group, _name, _color) BX_NOOP()
|
|
|
+# define BGFX_GPU_PROFILER_BEGIN_DYNAMIC(_namestr) BX_NOOP()
|
|
|
+# define BGFX_GPU_PROFILER_END() BX_NOOP()
|
|
|
+#endif
|
|
|
+
|
|
|
namespace bgfx { namespace d3d11
|
|
|
{
|
|
|
static wchar_t s_viewNameW[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
|
|
+ static char s_viewName[BGFX_CONFIG_MAX_VIEWS][BGFX_CONFIG_MAX_VIEW_NAME];
|
|
|
|
|
|
struct PrimInfo
|
|
|
{
|
|
|
@@ -1405,9 +1420,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
// Init reserved part of view name.
|
|
|
for (uint32_t ii = 0; ii < BGFX_CONFIG_MAX_VIEWS; ++ii)
|
|
|
{
|
|
|
- char name[BGFX_CONFIG_MAX_VIEW_NAME_RESERVED+1];
|
|
|
- bx::snprintf(name, sizeof(name), "%3d ", ii);
|
|
|
- mbstowcs(s_viewNameW[ii], name, BGFX_CONFIG_MAX_VIEW_NAME_RESERVED);
|
|
|
+ bx::snprintf(s_viewName[ii], BGFX_CONFIG_MAX_VIEW_NAME_RESERVED + 1, "%3d ", ii);
|
|
|
+ mbstowcs(s_viewNameW[ii], s_viewName[ii], BGFX_CONFIG_MAX_VIEW_NAME_RESERVED);
|
|
|
}
|
|
|
|
|
|
if (BX_ENABLED(BGFX_CONFIG_DEBUG)
|
|
|
@@ -1449,6 +1463,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
postReset();
|
|
|
}
|
|
|
|
|
|
+ BGFX_GPU_PROFILER_BIND(m_device, m_deviceCtx);
|
|
|
return true;
|
|
|
|
|
|
error:
|
|
|
@@ -1501,6 +1516,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
|
|
|
void shutdown()
|
|
|
{
|
|
|
+ BGFX_GPU_PROFILER_UNBIND();
|
|
|
+
|
|
|
preReset();
|
|
|
m_ovr.shutdown();
|
|
|
|
|
|
@@ -1864,6 +1881,11 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
, BX_COUNTOF(s_viewNameW[0])-BGFX_CONFIG_MAX_VIEW_NAME_RESERVED
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ bx::strlcpy(&s_viewName[_id][BGFX_CONFIG_MAX_VIEW_NAME_RESERVED]
|
|
|
+ , _name
|
|
|
+ , BX_COUNTOF(s_viewName[0]) - BGFX_CONFIG_MAX_VIEW_NAME_RESERVED
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
void updateUniform(uint16_t _loc, const void* _data, uint32_t _size) BX_OVERRIDE
|
|
|
@@ -4622,6 +4644,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
void RendererContextD3D11::submit(Frame* _render, ClearQuad& _clearQuad, TextVideoMemBlitter& _textVideoMemBlitter)
|
|
|
{
|
|
|
PIX_BEGINEVENT(D3DCOLOR_RGBA(0xff, 0x00, 0x00, 0xff), L"rendererSubmit");
|
|
|
+ BGFX_GPU_PROFILER_BEGIN_DYNAMIC("rendererSubmit");
|
|
|
|
|
|
ID3D11DeviceContext* deviceCtx = m_deviceCtx;
|
|
|
|
|
|
@@ -4754,6 +4777,13 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
}
|
|
|
|
|
|
PIX_ENDEVENT();
|
|
|
+ if (item > 1)
|
|
|
+ {
|
|
|
+ BGFX_GPU_PROFILER_END();
|
|
|
+ BGFX_PROFILER_END();
|
|
|
+ }
|
|
|
+ BGFX_PROFILER_BEGIN_DYNAMIC(s_viewName[view]);
|
|
|
+ BGFX_GPU_PROFILER_BEGIN_DYNAMIC(s_viewName[view]);
|
|
|
|
|
|
viewState.m_rect = _render->m_rect[view];
|
|
|
if (viewRestart)
|
|
|
@@ -5498,10 +5528,14 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
captureElapsed = -bx::getHPCounter();
|
|
|
capture();
|
|
|
captureElapsed += bx::getHPCounter();
|
|
|
+
|
|
|
+ BGFX_GPU_PROFILER_END();
|
|
|
+ BGFX_PROFILER_END();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
PIX_ENDEVENT();
|
|
|
+ BGFX_GPU_PROFILER_END();
|
|
|
|
|
|
int64_t now = bx::getHPCounter();
|
|
|
elapsed += now;
|