From 149b2d88dd75bddf1cb3e9927c4e8fcc84e263e1 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 1 Nov 2017 19:36:13 +0200 Subject: MAINT-7228 Vertex buffer allocation failure handling --- indra/newview/llvowlsky.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'indra/newview/llvowlsky.cpp') 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) -- cgit v1.2.3