diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 8d927ada5..1c227eb30 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -1299,7 +1299,31 @@ void LLVertexBuffer::setupVertexBuffer(U32 data_mask) const if ((data_mask & mTypeMask) != data_mask) { - llerrs << "LLVertexBuffer::setupVertexBuffer missing required components for supplied data mask." << llendl; + llerrs << "LLVertexBuffer::setupVertexBuffer missing required components for supplied data mask. Missing: "; + + static const char* mask_names[] = {"VERTEX","NORMAL","TEXCOORD0","TEXCOORD1","TEXCOORD2","TEXCOORD3","COLOR","BINORMAL","WEIGHT","CLOTH_WEIGHT"}; + for(int i = 0; i < 32; ++i) + { + if((data_mask & (1<getUsage() != group->mBufferUsage) { - buffer = createVertexBuffer(group->mSpatialPartition->mVertexDataMask, + //Using group->mSpatialPartition->mVertexDataMask may be dropping MAP_BINORMAL on RENDER_BUMP... + buffer = createVertexBuffer(mask /*group->mSpatialPartition->mVertexDataMask*/, group->mBufferUsage); buffer->allocateBuffer(geom_count, index_count, TRUE); + llassert_always(buffer->getTypeMask() == mask); } else {