diff options
author | Dave Airlie <[email protected]> | 2016-05-16 08:47:32 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2016-05-24 11:27:29 +1000 |
commit | a08c4ebbe841e22076c6d3929248876c60b3dfcd (patch) | |
tree | c358f0975adf886d53f0963fc07703863cf03bec /src/compiler/Android.nir.mk | |
parent | 8c628ab13e4fa86ee662dcddb0f5a89b2d30e1a4 (diff) |
glsl: rewrite clip/cull distance lowering pass
The last version of this broke clipping, and I had to spend
sometime getting this working properly.
I had to introduce a third pass to count the clip/cull totals,
all due to one messy corner case. We have a piglit test
tes-input-gl_ClipDistance.shader_test
that doesn't actually output the clip distances, it just passes
them like a varying from TCS->TES, the older lowering pass worked
but to lower clip/cull we need to know the total number of clip+culls
used to defined the new variable correctly, and to offset culls
properly.
This adds an extra pass that works out the sizes for clip/cull,
then lowers gl_ClipDistance then gl_CullDistance into the new
gl_ClipDistanceMESA.
The pass checks using the fixed array sizes code if they array
has been referenced, or is actually never used, and ignores
it in the latter case.
Reviewed-by: Ilia Mirkin <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/compiler/Android.nir.mk')
0 files changed, 0 insertions, 0 deletions