diff options
author | Paul Berry <[email protected]> | 2011-09-20 16:43:06 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2011-09-28 11:38:03 -0700 |
commit | a864b82a04efd0642f5b2a9489b3c20dac46551f (patch) | |
tree | 8d673d1196130e8320ef23a3a4feda1ecbf4f5d1 /src/glsl/ast.h | |
parent | e6c8027ccb44de58a51956306dfe93146dcbf526 (diff) |
i965: allow for nonconsecutive elements of gl_ClipDistance to be enabled.
When using user-defined clipping planes, the i965 driver compacts the
array of clipping planes so that disabled clipping planes do not
appear in it--this saves precious push constant space and makes it
easier to generate the pre-GEN6 clip program. As a result, when
enabling clipping planes in GEN6+ hardware, we always enable clipping
planes 0 through n-1 (where n is the number of clipping planes
enabled), regardless of which clipping planes the user actually
requested.
However, we can't do this when using gl_ClipDistance, because it would
be prohibitively complex to compact the gl_ClipDistance array inside
the user-supplied vertex shader. So, when enabling clipping planes in
GEN6+ hardware, if gl_ClipDistance is in use, we need to pass the
user-supplied enable flags directly through to the hardware rather
than just enabling the first n planes.
Fixes Piglit test vs-clip-distance-enables.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/ast.h')
0 files changed, 0 insertions, 0 deletions