This is a follow up to "i965 gen6: Pass-through GS program for future use by transform feedback". This patch series implements basic transform feedback functionality in i965 Gen6 (Sandy Bridge).
Patches 1/8 and 2/8 lay some additional core mesa groundwork for transform feedback, by having the linker record the stride for each transform feedback buffer (it seems silly to do this in driver-specific code), and by fixing a minor bug in transformfeedback.c. Patches 3/8 and 4/8 do some trivial i965 groundwork, fixing a flaw in emitting IF instructions that was never exercised before, and moving the VUE map to a place where it can be accessed while compiling the geometry shader. Patch 5/8 adds actual transform feedback capability, and patch 6/8 advertises support for the EXT_transform_feedback extension. Since there are a bunch of corner cases that aren't handled yet, I'm only advertising support for the extension when the environment variable MESA_GL_VERSION_OVERRIDE=3.0 is set. I'll make it unconditional once transform feedback support is finished. Patches 7/8 and 8/8 add some fun pipeline flushing to ensure that if the output of transform feedback is used in subsequent draw operations, the subsequent draw operations won't start before transform feedback completes. Stuff that remains to implement after this patch series: - Reset the streamed vertex buffer index to 0 on BeginTransformFeedback(). - Handle overflow of transform feedback buffers. - Rasterizer discard. - PRIMITIVES_GENERATED and TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries. [PATCH 1/8] mesa: Record transform feedback stride in linker output. [PATCH 2/8] mesa: Fix off-by-one error in transform feedback size check. [PATCH 3/8] i965 gen6+: Use 1-wide null operands for IF instructions [PATCH 4/8] i965 gs: Move vue_map to brw_gs_compile. [PATCH 5/8] i965 gen6: Initial implementation of transform feedback. [PATCH 6/8] i965 gen6: Turn on transform feedback extension. [PATCH 7/8] i965 gen6+: Make intel_batchbuffer_emit_mi_flush() actually flush. [PATCH 8/8] i965: Flush pipeline on EndTransformFeedback. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev