diff options
author | Keith Whitwell <[email protected]> | 2009-11-17 14:46:23 -0800 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2009-11-17 14:50:49 -0800 |
commit | 1877e6cd2d76143ef8a9c516122afe614ae3b4a4 (patch) | |
tree | 857cd3547555a14fe990dacc206234c892b9df1c /src/gallium/drivers/i965/brw_vs.c | |
parent | d299ee771b577a8ce839861d1af336fc316e0a1d (diff) |
i965g: handle special vs outputs specially
Where vs output semantic tags indicate an output is signficant for
fixed function processing (such as clipping, unfilled modes, etc),
retain information about that output so that we can get to it easily
later on.
Fix up the unfilled processing, but hard-wire edgeflag to one for now.
With this change, trivial/tri-unfilled works.
Diffstat (limited to 'src/gallium/drivers/i965/brw_vs.c')
-rw-r--r-- | src/gallium/drivers/i965/brw_vs.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gallium/drivers/i965/brw_vs.c b/src/gallium/drivers/i965/brw_vs.c index 05a62ed9745..26683929192 100644 --- a/src/gallium/drivers/i965/brw_vs.c +++ b/src/gallium/drivers/i965/brw_vs.c @@ -57,7 +57,18 @@ static enum pipe_error do_vs_prog( struct brw_context *brw, c.prog_data.nr_outputs = vp->info.num_outputs; c.prog_data.nr_inputs = vp->info.num_inputs; - c.prog_data.copy_edgeflag = c.key.copy_edgeflag; + + /* XXX: we want edgeflag handling to be integrated to the vertex + * shader, but are currently faking the edgeflag output: + */ + if (c.key.copy_edgeflag) { + c.prog_data.output_edgeflag = c.prog_data.nr_outputs; + c.prog_data.nr_outputs++; + } + else { + c.prog_data.output_edgeflag = ~0; + } + if (1) tgsi_dump(c.vp->tokens, 0); |