message: Don't mutate VAO binding when replaying glEnable/DisableVertexAttrib
  * These calls need to go through DSA access like all the other VAO
  functions.
diff: @@ -3662,21 +3662,17 @@ bool WrappedOpenGL::Serialise_glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint
  vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
  if(m_State < WRITING)
  - {
  - if(m_State == READING)
  {
  if(id != ResourceId())
  {
  - GLResource res = GetResourceManager()->GetLiveResource(id);
  - m_Real.glBindVertexArray(res.name);
  + vaobj = GetResourceManager()->GetLiveResource(id).name;
  }
  else
  {
  - m_Real.glBindVertexArray(m_FakeVAO);
  - }
  + vaobj = m_FakeVAO;
  }
  - m_Real.glEnableVertexAttribArray(Index);
  + m_Real.glEnableVertexArrayAttribEXT(vaobj, Index);
  }
  return true;
  }
  @@ -3744,21 +3740,17 @@ bool WrappedOpenGL::Serialise_glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint
  vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
  if(m_State < WRITING)
  - {
  - if(m_State == READING)
  {
  if(id != ResourceId())
  {
  - GLResource res = GetResourceManager()->GetLiveResource(id);
  - m_Real.glBindVertexArray(res.name);
  + vaobj = GetResourceManager()->GetLiveResource(id).name;
  }
  else
  {
  - m_Real.glBindVertexArray(m_FakeVAO);
  - }
  + vaobj = m_FakeVAO;
  }
  - m_Real.glDisableVertexAttribArray(Index);
  + m_Real.glDisableVertexArrayAttribEXT(vaobj, Index);
  }
  return true;
  }
  