   glBindAttribLocationARB Memory Leak
  alright,after about 3 hours looking for this leak, i've finally found it, but can't stop it.i've got a render function that enables a shader, binds all the attributes etc, then i use glDrawElements(...) to render... then i disable the shader and its bindings.anyway, i'm using glEnableVertexAttribArrayARB(locTangent); to bind the tangent and bitangent arrays to the shader.and glDisableVertexAttribArrayARB(locTangent); to unbind.the truble is, my memory usage is going up around 120k for tangents, and 120k for bitangents every second.do i need to do this some other way????   
  seeing the relivent code and how you do things might be handy.. (DONT just dump your whole program here...).Also, hardware and driver version might be handy.   ;  the codes all a bit oo, but here goes...before rendering, i use the follwing to setup all the shader bindings.use_Vertices(pRootObject);use_Normals(pRootObject);use_Tangents( pRootObject, pShader);use_Bitangents( pRootObject, pShader);pShader->enable();then i render the arrayad then i disable everything.disable_Vertices(pRootObject);disable_Normals(pRootObject);   disable_Tangents( pShader );disable_Bitangents( pShader );pShader->disable();the diable/use bitangent/tangent functions are the pretty much the same, so i'll just post one of each.voidCOctree::use_Tangents(t3DObject* pObject, CShader* pShader){if(pShader){intlocTangent=-1;locTangent=pShader->getAttributeLocation("tangent");pShader->bindAttributeLocation("tangent", locTangent);glEnableVertexAttribArrayARB(locTangent);glVertexAttribPointerARB( locTangent, 3, GL_FLOAT, false, 0, pObject->pTangents );}}voidCOctree::disable_Tangents(CShader* pShader){if(pShader){intlocTangent=-1;locTangent=pShader->getAttributeLocation("tangent");glDisableVertexAttribArrayARB(locTangent);}}and the pShader bind function is....//MEMORY LEAK//MEMORY LEAK//MEMORY LEAKvoidCShader::bindAttributeLocation(char* strName, UINT index){glBindAttribLocationARB(glsl_program, index,  strName);}i hope this helps...[Edited by - phantom on January 3, 2006 1:45:46 PM];  hmmm, I dont know if its the reason, howver your code is a little crazy... Firstly, you can only bind BEFORE the shader is linked.After linking you can query, binding after linking wont have any effect until the next time the shader is linked.Also, once you query an attribute location it will stay the same until next time the shader is recompiled & linked, at which point it might change. Thus constantly querying for the location is a waste of time and probably going to hurt your performance.   ;  thanks a lot, that's fixed it.you're right, i've been lazy just to get it working.i'm now storing the tangent and bitangent attribute locations for each shader in the shader wrapper. it's stopped the memory leak. cheers.