mesa: only flush vertices when the viewport is different
This prevents glViewport() and friends to always flush and trigger _NEW_VIEWPORT. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
4178cea06d
commit
cb577e379e
1 changed files with 3 additions and 3 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue