diff options
author | Paul Berry <[email protected]> | 2011-11-29 14:51:03 -0800 |
---|---|---|
committer | Paul Berry <[email protected]> | 2011-12-07 16:38:01 -0800 |
commit | d4976158c7f32705b48c773c3abd1b22bebe9c16 (patch) | |
tree | 0995446df96766d034e8f41112f919c00882232e /src/mesa/drivers/dri/i965/brw_gs.h | |
parent | 2252e5e3f1e8caece5c73df82f3ddf306baa2c91 (diff) |
i965 gen6: Implement pass-through GS for transform feedback.
In Gen6, transform feedback is accomplished by having the geometry
shader send vertex data to the data port using "Streamed Vertex Buffer
Write" messages, while simultaneously passing vertices through to the
rest of the graphics pipeline (if rendering is enabled).
This patch adds a geometry shader program that simply passes vertices
through to the rest of the graphics pipeline. The rest of transform
feedback functionality will be added in future patches.
To make the new geometry shader easier to test, I've added an
environment variable "INTEL_FORCE_GS". If this environment variable
is enabled, then the pass-through geometry shader will always be used,
regardless of whether transform feedback is in effect.
On my Sandy Bridge laptop, I'm able to enable INTEL_FORCE_GS with no
Piglit regressions.
Reviewed-by: Kenneth Graunke <[email protected]>
Acked-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_gs.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_gs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_gs.h b/src/mesa/drivers/dri/i965/brw_gs.h index 93448a77f08..abcb0b2db59 100644 --- a/src/mesa/drivers/dri/i965/brw_gs.h +++ b/src/mesa/drivers/dri/i965/brw_gs.h @@ -73,5 +73,7 @@ struct brw_gs_compile { void brw_gs_quads( struct brw_gs_compile *c, struct brw_gs_prog_key *key ); void brw_gs_quad_strip( struct brw_gs_compile *c, struct brw_gs_prog_key *key ); void brw_gs_lines( struct brw_gs_compile *c ); +void gen6_sol_program(struct brw_gs_compile *c, struct brw_gs_prog_key *key, + unsigned num_verts, bool check_edge_flag); #endif |