More robust attribute binding
Adding attribute and uniform debug logging.
Checking to see if aniso filtering is available.

Change-Id: I2ed9d166ed7ff3df971d7af18b7a33f4e3ade928
diff --git a/rsContext.cpp b/rsContext.cpp
index a7f380f..b4d5014 100644
--- a/rsContext.cpp
+++ b/rsContext.cpp
@@ -278,6 +278,8 @@
      rsc->props.mLogScripts = getProp("debug.rs.script");
      rsc->props.mLogObjects = getProp("debug.rs.object");
      rsc->props.mLogShaders = getProp("debug.rs.shader");
+     rsc->props.mLogShadersAttr = getProp("debug.rs.shader.attributes");
+     rsc->props.mLogShadersUniforms = getProp("debug.rs.shader.uniforms");
      rsc->props.mLogVisual = getProp("debug.rs.visual");
 
      ScriptTLSStruct *tlsStruct = new ScriptTLSStruct;
@@ -379,7 +381,7 @@
      memset(&cpuset, 0, sizeof(cpuset));
      cpuset.bits[idx / 64] |= 1ULL << (idx % 64);
      int ret = syscall(241, rsc->mWorkers.mNativeThreadId[idx],
-		       sizeof(cpuset), &cpuset);
+               sizeof(cpuset), &cpuset);
      LOGE("SETAFFINITY ret = %i %s", ret, EGLUtils::strerror(ret));
 #endif
 
@@ -614,6 +616,11 @@
             glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS, &mGL.mMaxFragmentUniformVectors);
 
             mGL.OES_texture_npot = NULL != strstr((const char *)mGL.mExtensions, "GL_OES_texture_npot");
+            mGL.EXT_texture_max_aniso = 1.0f;
+            bool hasAniso = NULL != strstr((const char *)mGL.mExtensions, "GL_EXT_texture_filter_anisotropic");
+            if(hasAniso) {
+                glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &mGL.EXT_texture_max_aniso);
+            }
         }
 
     }