code: private static void onGlInitialization() {
          if (glUninitialized) {
              glGetError(); // reset any previous error
              int[] size = new int[] { -1 };
              glGetIntegerv(GL_MAX_TEXTURE_SIZE, size, 0);
  
              int errorCode = glGetError();
              if (errorCode != GL_NO_ERROR) {
                  throw Exceptions.RuntimeAssertion(
                          "Error %d getting max texture size", errorCode);
              }
  
              int maxTextureSize = size[0];
              if (maxTextureSize <= 0) {
                  throw Exceptions.RuntimeAssertion(
                          "Invalid max texture size %d", maxTextureSize);
              }
  
              glMaxTextureSize = maxTextureSize;
              Log.d(TAG, "Actual GL_MAX_TEXTURE_SIZE = %d", glMaxTextureSize);
  
              glUninitialized = false;
          }
      }
docs: This method must be called, on the GL thread, at least once after
  initialization: it is safe to call it more than once.
  
  Not calling this method leaves {@link #glMaxTextureSize} set to a default
  value, which may be smaller than necessary.