There are a few important methods to be considered here. getUniformLocation getActiveAttrib getActiveUniform getProgramParameter (where you query the number of active uniforms or attributes) These methods should only take into consideration the list of filtered attributes and uniforms per shader program. The logic to filter these attributes and uniforms exists, but we need to move it to the right place.
<rdar://problem/16371751>
Created attachment 228613 [details] patch
Comment on attachment 228613 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=228613&action=review Looks good. I think it could be more efficient if we could avoid the double 'find' operation in cases where it is found the first time. > Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:726 > + const auto& result = m_shaderProgramSymbolCountMap.find(program); Aren't we performing the 'find' twice every time? Maybe this could precede the test for end, and only do the lookup once. > Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:772 > + const auto& result = m_shaderProgramSymbolCountMap.find(program); Ditto regarding double-lookup.
*** Bug 130477 has been marked as a duplicate of this bug. ***
Created attachment 228617 [details] patch
http://trac.webkit.org/changeset/166803