From 1865f341d8f45b389061fc08d2da90b7aa8a6099 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 6 Jan 2012 12:23:00 +0000 Subject: draw: clipdistance support (v2) Add support for using the clipdistance instead of clip plane. Passes all piglit clipdistance tests. v2: fixup some comments from Brian in review. Signed-off-by: Dave Airlie --- src/gallium/auxiliary/draw/draw_vs.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/gallium/auxiliary/draw/draw_vs.c') diff --git a/src/gallium/auxiliary/draw/draw_vs.c b/src/gallium/auxiliary/draw/draw_vs.c index 150653c..56c4f88 100644 --- a/src/gallium/auxiliary/draw/draw_vs.c +++ b/src/gallium/auxiliary/draw/draw_vs.c @@ -132,6 +132,11 @@ draw_create_vertex_shader(struct draw_context *draw, vs->info.output_semantic_index[i] == 0) { found_clipvertex = TRUE; vs->clipvertex_output = i; + } else if (vs->info.output_semantic_name[i] == TGSI_SEMANTIC_CLIPDIST) { + if (vs->info.output_semantic_index[i] == 0) + vs->clipdistance_output[0] = i; + else + vs->clipdistance_output[1] = i; } } if (!found_clipvertex) @@ -156,6 +161,8 @@ draw_bind_vertex_shader(struct draw_context *draw, draw->vs.position_output = dvs->position_output; draw->vs.edgeflag_output = dvs->edgeflag_output; draw->vs.clipvertex_output = dvs->clipvertex_output; + draw->vs.clipdistance_output[0] = dvs->clipdistance_output[0]; + draw->vs.clipdistance_output[1] = dvs->clipdistance_output[1]; dvs->prepare( dvs, draw ); } else { -- cgit v1.1