diff options
author | andreykproductengine <andreykproductengine@lindenlab.com> | 2017-11-01 19:36:13 +0200 |
---|---|---|
committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2017-11-01 19:36:13 +0200 |
commit | 149b2d88dd75bddf1cb3e9927c4e8fcc84e263e1 (patch) | |
tree | b02a4d2775cec34281b637a6f4d1ae0c40faa976 /indra/newview/llvowlsky.cpp | |
parent | fec6bbddc371b2d1e0aa41d39a1b3dfaa8fb2016 (diff) |
MAINT-7228 Vertex buffer allocation failure handling
Diffstat (limited to 'indra/newview/llvowlsky.cpp')
-rw-r--r-- | indra/newview/llvowlsky.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp index 16130b5ca7..3b9b96e9f1 100644 --- a/indra/newview/llvowlsky.cpp +++ b/indra/newview/llvowlsky.cpp @@ -313,7 +313,12 @@ BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable) #if DOME_SLICES { mFanVerts = new LLVertexBuffer(LLDrawPoolWLSky::SKY_VERTEX_DATA_MASK, GL_STATIC_DRAW_ARB); - mFanVerts->allocateBuffer(getFanNumVerts(), getFanNumIndices(), TRUE); + if (!mFanVerts->allocateBuffer(getFanNumVerts(), getFanNumIndices(), TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on sky update to " + << getFanNumVerts() << " vertices and " + << getFanNumIndices() << " indices" << LL_ENDL; + } BOOL success = mFanVerts->getVertexStrider(vertices) && mFanVerts->getTexCoord0Strider(texCoords) @@ -375,7 +380,12 @@ BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable) const U32 num_indices_this_seg = 1+num_stacks_this_seg*(2+2*verts_per_stack); llassert(num_indices_this_seg * sizeof(U16) <= max_buffer_bytes); - segment->allocateBuffer(num_verts_this_seg, num_indices_this_seg, TRUE); + if (!segment->allocateBuffer(num_verts_this_seg, num_indices_this_seg, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer on update to " + << num_verts_this_seg << " vertices and " + << num_indices_this_seg << " indices" << LL_ENDL; + } // lock the buffer BOOL success = segment->getVertexStrider(vertices) @@ -777,7 +787,10 @@ BOOL LLVOWLSky::updateStarGeometry(LLDrawable *drawable) if (mStarsVerts.isNull() || !mStarsVerts->isWriteable()) { mStarsVerts = new LLVertexBuffer(LLDrawPoolWLSky::STAR_VERTEX_DATA_MASK, GL_DYNAMIC_DRAW); - mStarsVerts->allocateBuffer(getStarsNumVerts()*6, 0, TRUE); + if (!mStarsVerts->allocateBuffer(getStarsNumVerts()*6, 0, TRUE)) + { + LL_WARNS() << "Failed to allocate Vertex Buffer for Sky to " << getStarsNumVerts() * 6 << " vertices" << LL_ENDL; + } } BOOL success = mStarsVerts->getVertexStrider(verticesp) |