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

Reply via email to