On Mon,  5 Dec 2011 09:40:44 -0800, Paul Berry <stereotype...@gmail.com> wrote:
> This patch adds a new bit to the ctx->NewState bitfield,
> _NEW_TRANSFORM_FEEDBACK, to track state changes that affect
> ctx->TransformFeedback.  This bit can be used by driver back-ends to
> avoid expensive recomputations when transform feedback state has not
> been modified.
> ---
>  src/mesa/main/mtypes.h            |    1 +
>  src/mesa/main/transformfeedback.c |    9 ++++++++-
>  2 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 33b00c6..fc494f7 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3051,6 +3051,7 @@ struct gl_matrix_stack
>  #define _NEW_PROGRAM_CONSTANTS (1 << 27)
>  #define _NEW_BUFFER_OBJECT     (1 << 28)
>  #define _NEW_FRAG_CLAMP        (1 << 29)
> +#define _NEW_TRANSFORM_FEEDBACK (1 << 30) /**< gl_context::TransformFeedback 
> */
>  #define _NEW_ALL ~0
>  /*@}*/
>  
> diff --git a/src/mesa/main/transformfeedback.c 
> b/src/mesa/main/transformfeedback.c
> index 11abd03..a1809db 100644
> --- a/src/mesa/main/transformfeedback.c
> +++ b/src/mesa/main/transformfeedback.c
> @@ -376,6 +376,7 @@ _mesa_BeginTransformFeedback(GLenum mode)
>        return;
>     }
>  
> +   ctx->NewState |= _NEW_TRANSFORM_FEEDBACK;
>     obj->Active = GL_TRUE;
>     ctx->TransformFeedback.Mode = mode;


These statechanges should probably be flagged using FLUSH_VERTICES(ctx,
_NEW_TRANSFORM_FEEDBACK), since we're about to change something that
would be used by existing glBegin()/glEnd() rendering that is batched up
in the vbo module.

Attachment: pgp0UBMLDzMtI.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to