mesa: Add a flag to indicate whether a program uses gl_ClipDistance.
authorPaul Berry <stereotype441@gmail.com>
Sat, 17 Sep 2011 16:42:02 +0000 (09:42 -0700)
committerPaul Berry <stereotype441@gmail.com>
Fri, 23 Sep 2011 20:28:51 +0000 (13:28 -0700)
commit1ad54ae0b1713e399c5db43d0eba87861075b4c7
treeade022dea53ca82dffd50fde2cfdda3bdc240e68
parentc06e32596735074536b0e613cbddb1c5fd7b367a
mesa: Add a flag to indicate whether a program uses gl_ClipDistance.

GLSL 1.30 requires us to use gl_ClipDistance for clipping if the
vertex shader contains a static write to it, and otherwise use
user-defined clipping planes.  Since the driver needs to behave
differently in these two cases, we need a flag to record whether the
shader has written to gl_ClipDistance.

The new flag is called UsesClipDistance.  We initially store it in
gl_shader_program (since that is the data structure that is available
when we check to see whethe gl_ClipDistance was written to), and we
later copy it to a flag with the same name in gl_vertex_program, since
that is a more convenient place for the driver to access it (in i965,
at least).

Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Brian Paul <brianp@vmware.com>
src/glsl/linker.cpp
src/mesa/main/mtypes.h
src/mesa/program/ir_to_mesa.cpp