Updating GL_ELEMENT_ARRAY_BUFFER causes performance feedback warnings on Intel MESA


updating the GL_ELEMENT_ARRAY_BUFFER always causes the performance feedback of the Intel Mesa driver to complain like:
Using a blit copy to avoid stalling on glBufferSubData(0, 216) (0kb) to a busy (0-264) buffer object.

I create the index buffer like this:

  glExt_glGenBuffers(1, &id);
  glExt_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, id);
  glExt_glBufferData(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)(indices * size),
      (GLvoid*)NULL, GL_DYNAMIC_DRAW);

and fill the buffer every frame to render the visible geometry:

 glExt_glBufferSubData(GL_ARRAY_BUFFER, (GLintptr)offset, (GLsizeiptr)size,

Thet’s where performance feedback starts to complain with “Using a blit copy to avoid stalling on glBufferSubData”.

Alternatively I’ve tried to map the buffer with

    glExt_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vao->iboid);
    idxbuf = glExt_glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY);

where performance feedback also complains with “Stalling on the GPU for mapping a busy buffer object”.

Is there anything I may have to do to update GL_ELEMENT_ARRAY_BUFFER without a performance impact?


Never mind,

  glExt_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vao->iboid);
  idxbuf = glExt_glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, offset, locksize,

silenced the performance feedback messages.