i965: Only use brw_draw.c's trim() function when necessary.
authorPaul Berry <stereotype441@gmail.com>
Fri, 5 Apr 2013 21:56:21 +0000 (14:56 -0700)
committerPaul Berry <stereotype441@gmail.com>
Tue, 9 Apr 2013 22:37:35 +0000 (15:37 -0700)
commita7388f8e6f72b31fa05c824ae1c42bf86794f878
tree700a5f06ff3960d09164635fc0a73ac3097701d4
parent56ce7fa4b8e1cdede206802e512b320b1b26110d
i965: Only use brw_draw.c's trim() function when necessary.

brw_draw.c contains a trim() function which modifies the vertex count
for quads and quad strips in order to discard dangling vertices.  In
principle this shouldn't be necessary, since hardware since Gen4 is
capable of discarding dangling vertices by itself.  However, it's
necessary because as a hack to speed up rendering on Gen 4-5, we
sometimes convert quads to trifans and quad strips to tristrips.  The
trim() function isn't necessary on Gen6 and up.

This patch documents why and when the trim() function is necessary,
and avoids calling it when it's not needed.

This will avoid creating problems when we enable hardware support for
primitive restart of quads and quad strips on Haswell.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_draw.c