On 15.04.2011 18:04, Brian Paul wrote: > > Hi Marek, > > Back on Jan 10 you removed the per-vertex array max_index field > (commit cdca3c58aa2d9549f5188910e2a77b438516714f). I believe this was > a mistake. > > I noticed today that the piglit draw-instanced-divisor test is > failing. A bisection points to Jose's commit > 17bbc1f0425b3768e26473eccea5f2570dcb26d3. But that's a red herring. > If I disable the SSE code paths, the regression goes back to the Jan > 10 change. > > With the GL_ARB_instanced_arrays extension vertex array indexing > changes quite a bit. Specifically, some arrays (those with divisors > != 0) are now indexed by instance ID, not the primitive's vertex > index. The draw_info::max_index field doesn't let us take this into > account. I believe that we really need a per-array max_index value. > > As an example, suppose we're drawing a star field with 1 million > instanced stars, each star drawn as a 4-vertex quad. We might use a > vertex array indexed by the instance ID to color the stars. > > The draw call would look like: > > glDrawArraysInstanced(GL_QUADS, 0, 4, 1000*1000); > > In this case we'd have two vertex arrays. The first array is the quad > vertex positions with four elements. The second array is the star > colors with 1 million elements. As it is now, we're setting > draw_info::max_index = 4 and we errantly clamp the index into the > second array to 4 instead of 1 million. > > As a temporary work around we can disable clamping of array indexes > for instance arrays. But I think we need to revert the Jan 10 commit > and then rework some of Jose's related changes. > > -Brian > You know which vertex elements are per-instance, you know the divisor, and you know the max instance index - that should be all the information you need.
You just have to clamp it to startInstance + instanceCount for them instead. > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev