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

Reply via email to