mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-21 14:23:02 +01:00
Added transient buffer stats.
This commit is contained in:
16
src/bgfx.cpp
16
src/bgfx.cpp
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user