[Mesa-dev] [PATCH 4/8] i965 gs: Move vue_map to brw_gs_compile.
Kenneth Graunke
kenneth at whitecape.org
Wed Dec 14 02:46:58 PST 2011
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 <kenneth at whitecape.org>
More information about the mesa-dev
mailing list