Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 3 of 3

Thread: ATI: procedural drawing without any vertex data

  1. #1
    Junior Member Newbie
    Join Date
    Mar 2011
    Location
    Australia
    Posts
    21

    ATI: procedural drawing without any vertex data

    I'm trying to draw (glDrawArrays) without binding any vertex data, generating everything using glVertex_ID. This works absolutely fine on Nvidia cards, but not with my ATI 5850s. Nothing is drawn unless I glEnableClientState or glEnableVertexAttribArray and bind a buffer full of junk. Can anyone with a different ATI card verify this?

  2. #2
    Junior Member Newbie
    Join Date
    May 2013
    Posts
    24
    Hi,

    I've try to do this, but I didn't work and some NVidia cards, but only with some drivers versions (all recent).

    I've made tests with about 5 cards and 3 drivers, but I was not able to identify the problem, so now my strategy is "this should work, but it doesn't everytime, everywhere".

    So I gave up, and now I always bind at least a minimal float array filled with dummy data. The other option is to use drawInstanced and gl_InstanceId instead of gl_VertexId.

  3. #3
    Member Regular Contributor
    Join Date
    Jun 2013
    Posts
    490
    I've had similar experiences. However, you can reduce the size of the array by using glVertexAttribDivisor() so that you only need one element per instance rather than per vertex.

    My suspicion is that this issue is related to attribute zero being "special" in the compatibility profile: glVertexAttrib(0,...) causes a new vertex to be generated, just like with glVertex().

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •