summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2009-12-16 22:12:16 +0100
committerRoland Scheidegger <[email protected]>2009-12-16 22:12:16 +0100
commit50caff5675888c0063c73fa64b88129db7aa11dd (patch)
treef01b9ae711eccbc022b29cfc631f15e38a61da47 /src/gallium/auxiliary/draw
parenta0127b6ced257919180ba3a1bf534b68d9c750be (diff)
gallium: edgeflags change fixes
use correct number of vertex inputs fix not running pipeline in case of edgeflags changes to mesa to tgsi translation still very broken
Diffstat (limited to 'src/gallium/auxiliary/draw')
-rw-r--r--src/gallium/auxiliary/draw/draw_pt_post_vs.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_post_vs.c b/src/gallium/auxiliary/draw/draw_pt_post_vs.c
index 08d77649a36..9dfb47837e0 100644
--- a/src/gallium/auxiliary/draw/draw_pt_post_vs.c
+++ b/src/gallium/auxiliary/draw/draw_pt_post_vs.c
@@ -156,8 +156,9 @@ post_vs_cliptest_viewport_gl_edgeflag(struct pt_post_vs *pvs,
unsigned stride )
{
unsigned j;
- if (!post_vs_cliptest_viewport_gl( pvs, vertices, count, stride))
- return FALSE;
+ boolean needpipe;
+
+ needpipe = post_vs_cliptest_viewport_gl( pvs, vertices, count, stride);
/* If present, copy edgeflag VS output into vertex header.
* Otherwise, leave header as is.
@@ -168,10 +169,12 @@ post_vs_cliptest_viewport_gl_edgeflag(struct pt_post_vs *pvs,
for (j = 0; j < count; j++) {
const float *edgeflag = out->data[ef];
- out->edgeflag = (edgeflag[0] != 1.0f);
+ out->edgeflag = !(edgeflag[0] != 1.0f);
+ needpipe |= !out->edgeflag;
+ out = (struct vertex_header *)( (char *)out + stride );
}
}
- return TRUE;
+ return needpipe;
}