← Back to team overview

tiomap-dev team mailing list archive

[Bug 974170] Re: SGX omap4 drivers can't handle changing the contents of and reusing a VBO in multiple draw calls in the same frame

 

fwiw, I think I've fixed the gpu crashes w/ compiz in latest 1.9 ddk,
and that also seems to fix this issue.  So hopefully the fix is coming
soon to a PPA near you

-- 
You received this bug notification because you are a member of TI OMAP
Developers, which is subscribed to ubuntu-omap4-extras-graphics.
https://bugs.launchpad.net/bugs/974170

Title:
  SGX omap4 drivers can't handle changing the contents of and reusing a
  VBO in multiple draw calls in the same frame

Status in Ubuntu OMAP4 graphics addons:
  New

Bug description:
  The SGX omap4 drivers can't handle changing the contents of and
  reusing a VBO in multiple draw calls in the same frame. For example:

  /* Upload data to the VBO, and draw */
  glBindBuffer(GL_ARRAY_BUFFER, vbo)
  glBufferData(...)
  glVertexAttribPointer(...)
  glDrawArrays(...)

  /* Change the data held by the same vbo, and draw again */
  glBindBuffer(GL_ARRAY_BUFFER, vbo)
  glBufferData(...)
  glVertexAttribPointer(...)
  glDrawArrays(..)

  eglSwapBuffers()

  With SGX, both the first and second glDrawArrays(), end up using the
  VBO contents set by the *second* glBufferData() call. The data
  uploaded the first time is just ignored. The expected behavior is for
  the first draw operation to use the data uploaded by the first
  glBufferData() call, and the second draw operation to use the data
  uploaded by the second glBufferData() call.

  I have created a small example that exhibits this issue:
  http://people.linaro.org/~afrantzis/reuse-vbo.tar.gz

  Use the --separate-vbos option to draw using a separate VBO for each triangle (instead of a single VBO for both)
  Use the --draw-line option to draw the second triangle using GL_LINE_LOOP (instead of GL_TRIANGLES), to make things visually clearer

  I have attached two images showing the results of running the example
  on SGX and on desktop r600g using GLES2 with various options. On r600g
  the results are the same regardless of whether we are using a single
  VBO or separate VBOs. On SGX, when using a single VBO, the first
  triangle is drawn (erroneously) using the same vertex data as the
  second triangle (passed in the second glBufferData()) call.

  I think that https://bugs.launchpad.net/ubuntu-omap4-extras-
  graphics/+bug/912280 is another expression of this problem.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-omap4-extras-graphics/+bug/974170/+subscriptions


References