0 Replies Latest reply on Jul 1, 2013 4:31 PM by icebeat

    In AMD gl_PrimitiveID doesn't work with big mesh, Nvidia does.

    icebeat

      Hi,

       

      We are developing a CAD application where the meshes usually are very big. For improve the performance we are painting in a unique batch all the primitives using glDrawElements.

      We are using the follow shader to generate Picking info over a FBO. With small mesh (around 2 million of primitives), all works fine but with mesh greater than of 8 millions of primitives the gl_PrimitiveID became invalid. It looks like if in a previous state, the gl_PrimitiveID was reset to zero. Is gl_PrimitiveID limited to a max number of Primitives? or is just a bug?

       

      The shaders we are using are this:

       

      // Vertex

      #version 330

      #define POSITION    0

       

      uniform mat4 MVP_Matrix;

       

      layout(location = POSITION) in vec4 VertexPosition;

       

      void main(void)

      {

         gl_Position = MVP_Matrix * VertexPosition;

      }

       

      // Fragment

      #version 330

      #extension GL_EXT_gpu_shader4 : enable

      uniform uint gEntyID; // Object Id

      uniform uint gSubEntyID; // Element Id

      uvec3 outFragColor;

      void main()

      {

          outFragColor = uvec3 (gEntyID,gSubEntyID,gl_PrimitiveID);

      }

       

      Thanks,

       

      Carlos.