To the best of my knowledge, this patch series completes my work on clipping for i965 Gen6 and beyond. Most of this is clean-up work, though there is one minor bug fix (patch 3/6).
The only patch which might be controversial is patch 6/6, which "de-compacts" the clip planes for Gen6 and beyond. In previous chip generations, if the user enabled a nonconsecutive set of clip planes (or a set of clip planes that didn't start at zero), we compacted them down to a consecutive set starting at 0. This was IMHO a dubious optimization, and it was incompatible with gl_ClipDistance. When I implemented gl_ClipDistance, I added logic to continue compacting when using clip planes, but not compact when using gl_ClipDistance. This introduced a clumsy dependency where the configuration of the clipper depended on the vertex shader's "UsesClipDistance" flag, which seems like it should be a private implementation detail of the vertex shader. Patch 6/6 changes things so that in Gen6 and beyond, we no longer compact clip planes at all. Gen4 and Gen5 still compact clip planes since it would be a lot of trouble to change their clipping logic. After this patch series (and the gl_ClipVertex series which I sent to the list in the last hour), i965 Gen6 passes all Piglit tests with "clip" in the name. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev