Here's a series of loosely-related fixes to transform feedback behaviour for GLES3.
Patches 1-4 implement a difference between GLES3 and desktop GL: in GLES3, transform feedback can only be used with DrawArrays and DrawArraysInstanced, and it is supposed to generate an error if there is not enough buffer space available to record transform feedback outputs. Patch 5 fixes a bug that was present for both GLES3 and desktop GL: querying GL_TRANSFORM_FEEDBACK_BUFFER_SIZE is supposed to return zero if the buffer was bound using a call that didn't specify a size (such as glBindBufferBase). With these patches (and varying packing, which I landed on master this morning), the i965 driver is able to pass all GLES3 transform feedback tests except transform_feedback2_pause_resume.test. [PATCH 1/5] mesa: Change args to vbo_count_tessellated_primitives. [PATCH 2/5] mesa: refactor _mesa_compute_max_transform_feedback_vertices from i965. [PATCH 3/5] mesa/gles3: Generate error on DrawElements* calls if transform feedback active. [PATCH 4/5] mesa/gles3: Generate error on draw call if transform feedback would overflow. [PATCH 5/5] mesa: Fix GL_TRANSFORM_FEEDBACK_BUFFER_SIZE query when glBindBufferBase used. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev