i965: Fix gl_TessLevelOuter[] for isolines.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 14 Mar 2016 21:22:39 +0000 (14:22 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 18 Mar 2016 23:45:23 +0000 (16:45 -0700)
commit5b2d8c2273c6f48e764a1386240ec674cb4aa4ad
tree2ace95c5feedf99b548038334d82f89a5a4cb775
parent24298b7e2ffe0d69ef996ab2c279b380bcb4a269
i965: Fix gl_TessLevelOuter[] for isolines.

Thanks to James Legg for finding this!

From the ARB_tessellation_shader spec:
"The number of isolines generated is derived from the first outer
 tessellation level; the number of segments in each isoline is
 derived from the second outer tessellation level."

According to the PRM, "TF.LineDensity determines # lines" while
"TF.LineDetail determines # segments".  Line Density is stored at
DWord 6, while Line Detail is at DWord 7.  So, they're not reversed
like they are for triangles and quads.

Fixes Piglit's spec/arb_tessellation_shader/execution/isoline,
and about 24 dEQP isoline tests (with GL_EXT_tessellation_shader
hacked on - it's not normally enabled).

Cc: mesa-stable@lists.freedesktop.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94524
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp
src/mesa/drivers/dri/i965/brw_vec4_tes.cpp