diff options
author | Dave Parks <davep@lindenlab.com> | 2011-07-22 01:07:48 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-07-22 01:07:48 -0500 |
commit | c3378885536c5b7d3dd503ed6867cf5d6a8b1370 (patch) | |
tree | c4ee3f08d5a24fa28e39c47781a103a32aeb7f47 /indra | |
parent | 7b6afd1eba69a61fae87e3f1e7b03d03ee4ea15e (diff) |
SH-2031 Disable usage of glMapBuffer (again). Despite using MapBufferRange, this is still a source of frame stalls.
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/featuretable.txt | 4 | ||||
-rw-r--r-- | indra/newview/featuretable_linux.txt | 4 | ||||
-rw-r--r-- | indra/newview/featuretable_xp.txt | 2 | ||||
-rw-r--r-- | indra/newview/llface.cpp | 14 |
4 files changed, 19 insertions, 5 deletions
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index d2d0227f62..67c8b977cf 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 31 +version 32 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table @@ -247,7 +247,7 @@ RenderShadowDetail 0 0 // GL_ARB_map_buffer_range exists // list MapBufferRange -RenderVBOMappingDisable 1 0 +RenderVBOMappingDisable 1 1 // diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index d9b4083016..6e962f3c56 100644 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -1,4 +1,4 @@ -version 26 +version 27 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences // Should be combined into one table @@ -245,7 +245,7 @@ RenderShadowDetail 0 0 // GL_ARB_map_buffer_range exists // list MapBufferRange -RenderVBOMappingDisable 1 0 +RenderVBOMappingDisable 1 1 diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt index 6477dab35a..a0245f5369 100644 --- a/indra/newview/featuretable_xp.txt +++ b/indra/newview/featuretable_xp.txt @@ -247,7 +247,7 @@ RenderShadowDetail 0 0 // GL_ARB_map_buffer_range exists // list MapBufferRange -RenderVBOMappingDisable 1 0 +RenderVBOMappingDisable 1 1 // diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 17b6912b63..432e61f6d8 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -1051,6 +1051,13 @@ bool LLFace::canRenderAsMask() static LLFastTimer::DeclareTimer FTM_FACE_GET_GEOM("Face Geom"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_POSITION("Position"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_NORMAL("Normal"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_TEXTURE("Texture"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_COLOR("Color"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_WEIGHTS("Weights"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_BINORMAL("Binormal"); +static LLFastTimer::DeclareTimer FTM_FACE_GEOM_INDEX("Index"); BOOL LLFace::getGeometryVolume(const LLVolume& volume, const S32 &f, @@ -1184,6 +1191,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, // INDICES if (full_rebuild) { + LLFastTimer t(FTM_FACE_GEOM_INDEX); mVertexBuffer->getIndexStrider(indicesp, mIndicesIndex, mIndicesCount, map_range); __m128i* dst = (__m128i*) indicesp.get(); @@ -1220,6 +1228,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_tcoord) { + LLFastTimer t(FTM_FACE_GEOM_TEXTURE); bool do_xform; if (tep) @@ -1621,6 +1630,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_pos) { + LLFastTimer t(FTM_FACE_GEOM_POSITION); llassert(num_vertices > 0); mVertexBuffer->getVertexStrider(vert, mGeomIndex, mGeomCount, map_range); @@ -1668,6 +1678,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_normal) { + LLFastTimer t(FTM_FACE_GEOM_NORMAL); mVertexBuffer->getNormalStrider(norm, mGeomIndex, mGeomCount, map_range); normals = (LLVector4a*) norm.get(); @@ -1687,6 +1698,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_binormal) { + LLFastTimer t(FTM_FACE_GEOM_BINORMAL); mVertexBuffer->getBinormalStrider(binorm, mGeomIndex, mGeomCount, map_range); binormals = (LLVector4a*) binorm.get(); @@ -1706,6 +1718,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_weights && vf.mWeights) { + LLFastTimer t(FTM_FACE_GEOM_WEIGHTS); mVertexBuffer->getWeight4Strider(wght, mGeomIndex, mGeomCount, map_range); weights = (LLVector4a*) wght.get(); LLVector4a::memcpyNonAliased16((F32*) weights, (F32*) vf.mWeights, num_vertices*4*sizeof(F32)); @@ -1717,6 +1730,7 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_color) { + LLFastTimer t(FTM_FACE_GEOM_COLOR); mVertexBuffer->getColorStrider(colors, mGeomIndex, mGeomCount, map_range); LLVector4a src; |