diff options
author | Zack Rusin <[email protected]> | 2013-06-06 09:07:33 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2013-06-10 22:04:28 -0400 |
commit | babe35a067d1610d9032cc28eec8e16b18685621 (patch) | |
tree | 9c84b9f48f59e563e3bf5162ee5bb24998129320 /src/gallium/auxiliary/draw/draw_vs.c | |
parent | 3d08eada3450aa8801aed194afea99c816dd71f0 (diff) |
draw: implement distance culling
Works similarly to clip distance. If the cull distance is negative
for all vertices against a specific plane then the primitive
is culled.
Signed-off-by: Zack Rusin <[email protected]>
Reviewed-by: Jose Fonseca <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_vs.c')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_vs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs.c b/src/gallium/auxiliary/draw/draw_vs.c index 95f678ab2cd..a0bebcc7666 100644 --- a/src/gallium/auxiliary/draw/draw_vs.c +++ b/src/gallium/auxiliary/draw/draw_vs.c @@ -90,6 +90,9 @@ draw_create_vertex_shader(struct draw_context *draw, vs->clipdistance_output[0] = i; else vs->clipdistance_output[1] = i; + } else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CULLDIST) { + debug_assert(vs->info.output_semantic_index[i] < Elements(vs->culldistance_output)); + vs->culldistance_output[vs->info.output_semantic_index[i]] = i; } } if (!found_clipvertex) |