# HG changeset patch # Parent 88a5c8710f5cffd568bc21226118cb567850ce28 diff --git a/gfx/angle/src/libGLESv2/VertexDataManager.cpp b/gfx/angle/src/libGLESv2/VertexDataManager.cpp --- a/gfx/angle/src/libGLESv2/VertexDataManager.cpp +++ b/gfx/angle/src/libGLESv2/VertexDataManager.cpp @@ -134,34 +134,34 @@ GLenum VertexDataManager::prepareVertexD if (staticBuffer->size() == 0) { int totalCount = buffer->size() / attribs[i].stride(); staticBuffer->addRequiredSpace(spaceRequired(attribs[i], totalCount)); } else if (staticBuffer->lookupAttribute(attribs[i]) == -1) { // This static buffer doesn't have matching attributes, so fall back to using the streaming buffer - buffer->invalidateStaticData(); - // Add the space of all previous attributes belonging to the invalidated static buffer to the streaming buffer for (int previous = 0; previous < i; previous++) { if (translated[previous].active && attribs[previous].mArrayEnabled) { Buffer *previousBuffer = attribs[previous].mBoundBuffer.get(); StaticVertexBuffer *previousStaticBuffer = previousBuffer ? previousBuffer->getStaticVertexBuffer() : NULL; if (staticBuffer == previousStaticBuffer) { mStreamingBuffer->addRequiredSpace(spaceRequired(attribs[previous], count)); } } } mStreamingBuffer->addRequiredSpace(spaceRequired(attribs[i], count)); + + buffer->invalidateStaticData(); } } else { mStreamingBuffer->addRequiredSpace(spaceRequired(attribs[i], count)); } } }