On 12/13/2011 03:35 PM, Paul Berry wrote: > This patch stores the geometry shader VUE map from a local variable in > compile_gs_prog() to a field in the brw_gs_compile struct, so that it > will be available while compiling the geometry shader. This is > necessary in order to support transform feedback on Gen6, because the > Gen6 geometry shader code that supports transform feedback needs to be > able to inspect the VUE map in order to find the correct vertex data > to output. > --- > src/mesa/drivers/dri/i965/brw_gs.c | 5 ++--- > src/mesa/drivers/dri/i965/brw_gs.h | 2 ++ > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_gs.c > b/src/mesa/drivers/dri/i965/brw_gs.c > index 69ffa19..f5d5898 100644 > --- a/src/mesa/drivers/dri/i965/brw_gs.c > +++ b/src/mesa/drivers/dri/i965/brw_gs.c > @@ -57,9 +57,8 @@ static void compile_gs_prog( struct brw_context *brw, > > c.key = *key; > /* The geometry shader needs to access the entire VUE. */ > - struct brw_vue_map vue_map; > - brw_compute_vue_map(&vue_map, intel, c.key.userclip_active, c.key.attrs); > - c.nr_regs = (vue_map.num_slots + 1)/2; > + brw_compute_vue_map(&c.vue_map, intel, c.key.userclip_active, > c.key.attrs); > + c.nr_regs = (c.vue_map.num_slots + 1)/2; > > mem_ctx = NULL; > > diff --git a/src/mesa/drivers/dri/i965/brw_gs.h > b/src/mesa/drivers/dri/i965/brw_gs.h > index abcb0b2..ecab3ef 100644 > --- a/src/mesa/drivers/dri/i965/brw_gs.h > +++ b/src/mesa/drivers/dri/i965/brw_gs.h > @@ -66,6 +66,8 @@ struct brw_gs_compile { > > /* Number of registers used to store vertex data */ > GLuint nr_regs; > + > + struct brw_vue_map vue_map; > }; > > #define ATTR_SIZE (4*4)
Simple enough. I noticed that you only use this in gen6_sol_program(), so you could actually just pass it as an additional function parameter. That said, I imagine it will be useful elsewhere in the future, so this seems sensible. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev