Added transient buffer stats.

This commit is contained in:
Branimir Karadžić
2018-04-18 16:35:57 -07:00
parent b0a2514913
commit 28e1839342
6 changed files with 32 additions and 9 deletions

View File

@@ -1268,6 +1268,8 @@ namespace bgfx
LIMITS(maxUniforms);
LIMITS(maxOcclusionQueries);
LIMITS(maxEncoders);
LIMITS(transientVbSize);
LIMITS(transientIbSize);
#undef LIMITS
BX_TRACE("");
@@ -1508,14 +1510,14 @@ namespace bgfx
m_textVideoMemBlitter.init();
m_clearQuad.init();
m_submit->m_transientVb = createTransientVertexBuffer(BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE);
m_submit->m_transientIb = createTransientIndexBuffer(BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE);
m_submit->m_transientVb = createTransientVertexBuffer(_init.limits.transientVbSize);
m_submit->m_transientIb = createTransientIndexBuffer(_init.limits.transientIbSize);
frame();
if (BX_ENABLED(BGFX_CONFIG_MULTITHREADED) )
{
m_submit->m_transientVb = createTransientVertexBuffer(BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE);
m_submit->m_transientIb = createTransientIndexBuffer(BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE);
m_submit->m_transientVb = createTransientVertexBuffer(_init.limits.transientVbSize);
m_submit->m_transientIb = createTransientIndexBuffer(_init.limits.transientIbSize);
frame();
}
@@ -2777,7 +2779,9 @@ namespace bgfx
, callback(NULL)
, allocator(NULL)
{
limits.maxEncoders = BGFX_CONFIG_DEFAULT_MAX_ENCODERS;
limits.maxEncoders = BGFX_CONFIG_DEFAULT_MAX_ENCODERS;
limits.transientVbSize = BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE;
limits.transientIbSize = BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE;
}
bool init(const Init& _init)
@@ -2855,6 +2859,8 @@ namespace bgfx
g_caps.limits.maxOcclusionQueries = BGFX_CONFIG_MAX_OCCLUSION_QUERIES;
g_caps.limits.maxFBAttachments = 1;
g_caps.limits.maxEncoders = (0 != BGFX_CONFIG_MULTITHREADED) ? _init.limits.maxEncoders : 1;
g_caps.limits.transientVbSize = _init.limits.transientVbSize;
g_caps.limits.transientIbSize = _init.limits.transientIbSize;
g_caps.vendorId = _init.vendorId;
g_caps.deviceId = _init.deviceId;

View File

@@ -1835,6 +1835,9 @@ namespace bgfx
void start()
{
m_perfStats.transientVbUsed = m_vboffset;
m_perfStats.transientIbUsed = m_iboffset;
m_frameCache.reset();
m_numRenderItems = 0;
m_numBlitItems = 0;
@@ -1866,7 +1869,7 @@ namespace bgfx
{
uint32_t offset = bx::strideAlign(m_iboffset, sizeof(uint16_t) );
uint32_t iboffset = offset + _num*sizeof(uint16_t);
iboffset = bx::min<uint32_t>(iboffset, BGFX_CONFIG_TRANSIENT_INDEX_BUFFER_SIZE);
iboffset = bx::min<uint32_t>(iboffset, g_caps.limits.transientIbSize);
uint32_t num = (iboffset-offset)/sizeof(uint16_t);
return num;
}
@@ -1885,7 +1888,7 @@ namespace bgfx
{
uint32_t offset = bx::strideAlign(m_vboffset, _stride);
uint32_t vboffset = offset + _num * _stride;
vboffset = bx::min<uint32_t>(vboffset, BGFX_CONFIG_TRANSIENT_VERTEX_BUFFER_SIZE);
vboffset = bx::min<uint32_t>(vboffset, g_caps.limits.transientVbSize);
uint32_t num = (vboffset-offset)/_stride;
return num;
}