message: Clamp max attribute name length to [63, 2047] and comment
  * Clamp the max attribute length to [63,2047]
  Let's not trust the driver too much.
  * Add comments on why we're skipping empty attributes and why we're clamping attr_name_len_max
  * proper formatting for the comments
diff: use crate::gl;
  +use std::cmp;
  use std::collections::HashMap;
  use std::hash::BuildHasherDefault;
  use std::ffi;
  @@ -345,6 +346,9 @@ pub unsafe fn reflect_attributes(ctxt: &mut CommandContext<'_>, program: Handle)
  &mut attr_name_len_max);
  }
  };
  + // let's not trust the driver too much, and clamp the max_len to [63, 2047]
  + attr_name_len_max = cmp::min(cmp::max(attr_name_len_max, 63), 2047);
  +
  (active_attributes, attr_name_len_max)
  };
  @@ -391,7 +395,11 @@ pub unsafe fn reflect_attributes(ctxt: &mut CommandContext<'_>, program: Handle)
  }
  if attr_name.is_empty() {
  - continue; //TODO what do we really want to do here, return an error?
  + // Some spirv compilers add an empty attribute to shaders. Most drivers
  + // don't expose this attribute, but some do.
  + // Since we can't do anything with empty attribute names, we simply skip
  + // them in this reflection code.
  + continue;
  }
  let location = match program {
  