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

Reply via email to