[Mesa-dev] [PATCH 4/4] mesa: only flush vertices when the viewport is different

Nicolai Hähnle nhaehnle at gmail.com
Sat Jun 24 10:01:04 UTC 2017


Patches 3 & 4:

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>


On 22.06.2017 16:35, Samuel Pitoiset wrote:
> This prevents glViewport() and friends to always flush and
> trigger _NEW_VIEWPORT.
> 
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>   src/mesa/main/viewport.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c
> index 33aa1269520..ae03d6a5dd2 100644
> --- a/src/mesa/main/viewport.c
> +++ b/src/mesa/main/viewport.c
> @@ -40,9 +40,6 @@ set_viewport_no_notify(struct gl_context *ctx, unsigned idx,
>                          GLfloat x, GLfloat y,
>                          GLfloat width, GLfloat height)
>   {
> -   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewViewport ? 0 : _NEW_VIEWPORT);
> -   ctx->NewDriverState |= ctx->DriverFlags.NewViewport;
> -
>      /* clamp width and height to the implementation dependent range */
>      width  = MIN2(width, (GLfloat) ctx->Const.MaxViewportWidth);
>      height = MIN2(height, (GLfloat) ctx->Const.MaxViewportHeight);
> @@ -70,6 +67,9 @@ set_viewport_no_notify(struct gl_context *ctx, unsigned idx,
>          ctx->ViewportArray[idx].Height == height)
>         return;
>   
> +   FLUSH_VERTICES(ctx, ctx->DriverFlags.NewViewport ? 0 : _NEW_VIEWPORT);
> +   ctx->NewDriverState |= ctx->DriverFlags.NewViewport;
> +
>      ctx->ViewportArray[idx].X = x;
>      ctx->ViewportArray[idx].Width = width;
>      ctx->ViewportArray[idx].Y = y;
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list