new fasttimers, including ui.
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
#include "llshadermgr.h"
|
||||
#include "llglslshader.h"
|
||||
#include "llmemory.h"
|
||||
#include "llfasttimer.h"
|
||||
|
||||
//Next Highest Power Of Two
|
||||
//helper function, returns first number > v that is a power of 2, or v if v is already a power of 2
|
||||
@@ -1169,7 +1170,7 @@ void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create)
|
||||
}
|
||||
}
|
||||
|
||||
//static LLFastTimer::DeclareTimer FTM_SETUP_VERTEX_ARRAY("Setup VAO");
|
||||
static LLFastTimer::DeclareTimer FTM_SETUP_VERTEX_ARRAY("Setup VAO");
|
||||
|
||||
void LLVertexBuffer::setupVertexArray()
|
||||
{
|
||||
@@ -1178,7 +1179,7 @@ void LLVertexBuffer::setupVertexArray()
|
||||
return;
|
||||
}
|
||||
|
||||
//LLFastTimer t(FTM_SETUP_VERTEX_ARRAY);
|
||||
LLFastTimer t(FTM_SETUP_VERTEX_ARRAY);
|
||||
#if GL_ARB_vertex_array_object
|
||||
glBindVertexArray(mGLArray);
|
||||
#endif
|
||||
@@ -1310,6 +1311,8 @@ bool expand_region(LLVertexBuffer::MappedRegion& region, S32 index, S32 count)
|
||||
return true;
|
||||
}
|
||||
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_MAP_BUFFER_RANGE("VBO Map Range");
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_MAP_BUFFER("VBO Map");
|
||||
// Map for data access
|
||||
volatile U8* LLVertexBuffer::mapVertexBuffer(S32 type, S32 index, S32 count, bool map_range)
|
||||
{
|
||||
@@ -1380,6 +1383,7 @@ volatile U8* LLVertexBuffer::mapVertexBuffer(S32 type, S32 index, S32 count, boo
|
||||
if (map_range)
|
||||
{
|
||||
#ifdef GL_ARB_map_buffer_range
|
||||
LLFastTimer t(FTM_VBO_MAP_BUFFER_RANGE);
|
||||
S32 offset = mOffsets[type] + sTypeSize[type]*index;
|
||||
S32 length = (sTypeSize[type]*count+0xF) & ~0xF;
|
||||
src = (U8*) glMapBufferRange(GL_ARRAY_BUFFER_ARB, offset, length,
|
||||
@@ -1403,6 +1407,7 @@ volatile U8* LLVertexBuffer::mapVertexBuffer(S32 type, S32 index, S32 count, boo
|
||||
}
|
||||
}
|
||||
|
||||
LLFastTimer t(FTM_VBO_MAP_BUFFER);
|
||||
src = (U8*) glMapBufferRange(GL_ARRAY_BUFFER_ARB, 0, mSize,
|
||||
GL_MAP_WRITE_BIT |
|
||||
GL_MAP_FLUSH_EXPLICIT_BIT);
|
||||
@@ -1485,6 +1490,9 @@ volatile U8* LLVertexBuffer::mapVertexBuffer(S32 type, S32 index, S32 count, boo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_MAP_INDEX_RANGE("IBO Map Range");
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_MAP_INDEX("IBO Map");
|
||||
volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range)
|
||||
{
|
||||
LLMemType mt(LLMemType::MTYPE_VERTEX_DATA);
|
||||
@@ -1564,6 +1572,7 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
||||
if (map_range)
|
||||
{
|
||||
#ifdef GL_ARB_map_buffer_range
|
||||
LLFastTimer t(FTM_VBO_MAP_INDEX_RANGE);
|
||||
S32 offset = sizeof(U16)*index;
|
||||
S32 length = sizeof(U16)*count;
|
||||
src = (U8*) glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER_ARB, offset, length,
|
||||
@@ -1575,6 +1584,7 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
||||
else
|
||||
{
|
||||
#ifdef GL_ARB_map_buffer_range
|
||||
LLFastTimer t(FTM_VBO_MAP_INDEX);
|
||||
src = (U8*) glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER_ARB, 0, sizeof(U16)*mNumIndices,
|
||||
GL_MAP_WRITE_BIT |
|
||||
GL_MAP_FLUSH_EXPLICIT_BIT);
|
||||
@@ -1596,6 +1606,7 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
||||
}
|
||||
else
|
||||
{
|
||||
LLFastTimer t(FTM_VBO_MAP_INDEX);
|
||||
map_range = false;
|
||||
src = (U8*) glMapBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
|
||||
}
|
||||
@@ -1646,6 +1657,13 @@ volatile U8* LLVertexBuffer::mapIndexBuffer(S32 index, S32 count, bool map_range
|
||||
}
|
||||
}
|
||||
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_UNMAP("VBO Unmap");
|
||||
static LLFastTimer::DeclareTimer FTM_VBO_FLUSH_RANGE("Flush VBO Range");
|
||||
|
||||
|
||||
static LLFastTimer::DeclareTimer FTM_IBO_UNMAP("IBO Unmap");
|
||||
static LLFastTimer::DeclareTimer FTM_IBO_FLUSH_RANGE("Flush IBO Range");
|
||||
|
||||
void LLVertexBuffer::unmapBuffer()
|
||||
{
|
||||
LLMemType mt(LLMemType::MTYPE_VERTEX_DATA);
|
||||
@@ -1658,6 +1676,7 @@ void LLVertexBuffer::unmapBuffer()
|
||||
|
||||
if (mMappedData && mVertexLocked)
|
||||
{
|
||||
LLFastTimer t(FTM_VBO_UNMAP);
|
||||
bindGLBuffer(true);
|
||||
updated_all = mIndexLocked; //both vertex and index buffers done updating
|
||||
|
||||
@@ -1698,6 +1717,7 @@ void LLVertexBuffer::unmapBuffer()
|
||||
S32 length = sTypeSize[region.mType]*region.mCount;
|
||||
if (gGLManager.mHasMapBufferRange)
|
||||
{
|
||||
LLFastTimer t(FTM_VBO_FLUSH_RANGE);
|
||||
#ifdef GL_ARB_map_buffer_range
|
||||
glFlushMappedBufferRange(GL_ARRAY_BUFFER_ARB, offset, length);
|
||||
#endif
|
||||
@@ -1761,6 +1781,7 @@ void LLVertexBuffer::unmapBuffer()
|
||||
S32 length = sizeof(U16)*region.mCount;
|
||||
if (gGLManager.mHasMapBufferRange)
|
||||
{
|
||||
LLFastTimer t(FTM_IBO_FLUSH_RANGE);
|
||||
#ifdef GL_ARB_map_buffer_range
|
||||
glFlushMappedBufferRange(GL_ELEMENT_ARRAY_BUFFER_ARB, offset, length);
|
||||
#endif
|
||||
@@ -1898,13 +1919,13 @@ bool LLVertexBuffer::getClothWeightStrider(LLStrider<LLVector4>& strider, S32 in
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//static LLFastTimer::DeclareTimer FTM_BIND_GL_ARRAY("Bind Array");
|
||||
static LLFastTimer::DeclareTimer FTM_BIND_GL_ARRAY("Bind Array");
|
||||
bool LLVertexBuffer::bindGLArray()
|
||||
{
|
||||
if (mGLArray && sGLRenderArray != mGLArray)
|
||||
{
|
||||
{
|
||||
//LLFastTimer t(FTM_BIND_GL_ARRAY);
|
||||
LLFastTimer t(FTM_BIND_GL_ARRAY);
|
||||
#if GL_ARB_vertex_array_object
|
||||
glBindVertexArray(mGLArray);
|
||||
#endif
|
||||
@@ -1921,7 +1942,7 @@ bool LLVertexBuffer::bindGLArray()
|
||||
return false;
|
||||
}
|
||||
|
||||
//static LLFastTimer::DeclareTimer FTM_BIND_GL_BUFFER("Bind Buffer");
|
||||
static LLFastTimer::DeclareTimer FTM_BIND_GL_BUFFER("Bind Buffer");
|
||||
|
||||
bool LLVertexBuffer::bindGLBuffer(bool force_bind)
|
||||
{
|
||||
@@ -1931,7 +1952,7 @@ bool LLVertexBuffer::bindGLBuffer(bool force_bind)
|
||||
|
||||
if (useVBOs() && (force_bind || (mGLBuffer && (mGLBuffer != sGLRenderBuffer || !sVBOActive))))
|
||||
{
|
||||
//LLFastTimer t(FTM_BIND_GL_BUFFER);
|
||||
LLFastTimer t(FTM_BIND_GL_BUFFER);
|
||||
/*if (sMapped)
|
||||
{
|
||||
llerrs << "VBO bound while another VBO mapped!" << llendl;
|
||||
@@ -1953,7 +1974,7 @@ bool LLVertexBuffer::bindGLBuffer(bool force_bind)
|
||||
return ret;
|
||||
}
|
||||
|
||||
//static LLFastTimer::DeclareTimer FTM_BIND_GL_INDICES("Bind Indices");
|
||||
static LLFastTimer::DeclareTimer FTM_BIND_GL_INDICES("Bind Indices");
|
||||
|
||||
bool LLVertexBuffer::bindGLIndices(bool force_bind)
|
||||
{
|
||||
@@ -1962,7 +1983,7 @@ bool LLVertexBuffer::bindGLIndices(bool force_bind)
|
||||
bool ret = false;
|
||||
if (useVBOs() && (force_bind || (mGLIndices && (mGLIndices != sGLRenderIndices || !sIBOActive))))
|
||||
{
|
||||
//LLFastTimer t(FTM_BIND_GL_INDICES);
|
||||
LLFastTimer t(FTM_BIND_GL_INDICES);
|
||||
/*if (sMapped)
|
||||
{
|
||||
llerrs << "VBO bound while another VBO mapped!" << llendl;
|
||||
|
||||
Reference in New Issue
Block a user