summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_pipe.h
diff options
context:
space:
mode:
authorZack Rusin <[email protected]>2013-08-02 02:25:42 -0400
committerZack Rusin <[email protected]>2013-08-03 00:38:58 -0400
commitc9c211fae194ac6bf50e0c579c8670590690dd6e (patch)
tree224e6f6d9fc6bc5979c5e9bc3bdd056a33458ed5 /src/gallium/auxiliary/draw/draw_pipe.h
parent8a94d15fbaf46caf1a25034acbbdbed33f46f911 (diff)
draw: implement proper primitive assembler as a pipeline stage
we used to have a face primitive assembler that we ran after if the gs was missing but we had adjacency primitives in the pipeline, lets convert it to a pipeline stage, which allows us to use it to inject outputs (primitive id) into the vertices. it's also a lot cleaner because the decomposition is already handled for us. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pipe.h')
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe.h b/src/gallium/auxiliary/draw/draw_pipe.h
index 70c286f4330..70822a41901 100644
--- a/src/gallium/auxiliary/draw/draw_pipe.h
+++ b/src/gallium/auxiliary/draw/draw_pipe.h
@@ -91,7 +91,10 @@ extern struct draw_stage *draw_stipple_stage( struct draw_context *context );
extern struct draw_stage *draw_wide_line_stage( struct draw_context *context );
extern struct draw_stage *draw_wide_point_stage( struct draw_context *context );
extern struct draw_stage *draw_validate_stage( struct draw_context *context );
+extern struct draw_stage *draw_ia_stage(struct draw_context *context);
+boolean draw_ia_stage_required(const struct draw_context *context,
+ unsigned prim);
extern void draw_free_temp_verts( struct draw_stage *stage );
extern boolean draw_alloc_temp_verts( struct draw_stage *stage, unsigned nr );
@@ -105,6 +108,8 @@ void draw_pipe_passthrough_point(struct draw_stage *stage, struct prim_header *h
void draw_unfilled_prepare_outputs(struct draw_context *context,
struct draw_stage *stage);
+void draw_ia_prepare_outputs(struct draw_context *context,
+ struct draw_stage *stage);
/**