diff options
author | Paul Berry <[email protected]> | 2011-08-11 20:58:21 -0700 |
---|---|---|
committer | Paul Berry <[email protected]> | 2011-09-23 13:28:43 -0700 |
commit | c06e32596735074536b0e613cbddb1c5fd7b367a (patch) | |
tree | e062d9b19ebbab5dd27926260f67afb4bcb27390 /src/glsl/SConscript | |
parent | cc81eb09b928389f926b3512c18b3298777d2928 (diff) |
glsl: Implement a lowering pass for gl_ClipDistance.
In i965 GEN6+ (and I suspect most other hardware), gl_ClipDistance
needs to be laid out as a pair of vec4's (the first containing clip
distances 0-3, and the second containing clip distances 4-7).
However, it is declared in GLSL as an array of 8 floats.
This lowering pass acts at the GLSL level, modifying the declaration
of gl_ClipDistance so that it is an array of vec4's rather than an
array of floats, and renaming it to gl_ClipDistanceMESA. In addition,
it modifies all accesses to the array so that they access the
appropiate component of one of the vec4's.
Since some hardware may not internally represent gl_ClipDistance as a
pair of vec4's, this lowering pass is optional. To enable it, set the
LowerClipDistance flag in gl_shader_compiler_options to true.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/SConscript')
-rw-r--r-- | src/glsl/SConscript | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/SConscript b/src/glsl/SConscript index 1da58a91f91..b4786c5e539 100644 --- a/src/glsl/SConscript +++ b/src/glsl/SConscript @@ -67,6 +67,7 @@ glsl_sources = [ 'loop_analysis.cpp', 'loop_controls.cpp', 'loop_unroll.cpp', + 'lower_clip_distance.cpp', 'lower_discard.cpp', 'lower_if_to_cond_assign.cpp', 'lower_instructions.cpp', |