summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-06-10 00:30:18 +0200
committerMarek Olšák <[email protected]>2017-06-22 01:51:02 +0200
commitbe15028ede59bc1936be315321e8add7553641f3 (patch)
treea9b727293f9b7f8aeee0f503f181793999408746
parent124df5d71a051b6e7d46ac45331ad21bfd1df029 (diff)
mesa: don't flag _NEW_SCISSOR for st/mesa
Not needed and we get to bypass _mesa_update_state_locked that would be a no-op. Reviewed-by: Nicolai Hähnle <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r--src/mesa/main/enable.c6
-rw-r--r--src/mesa/main/scissor.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
index 522b71ecfc7..9410d5ea94e 100644
--- a/src/mesa/main/enable.c
+++ b/src/mesa/main/enable.c
@@ -670,7 +670,8 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
GLbitfield newEnabled =
state * ((1 << ctx->Const.MaxViewports) - 1);
if (newEnabled != ctx->Scissor.EnableFlags) {
- FLUSH_VERTICES(ctx, _NEW_SCISSOR);
+ FLUSH_VERTICES(ctx, ctx->DriverFlags.NewScissorTest ? 0 :
+ _NEW_SCISSOR);
ctx->NewDriverState |= ctx->DriverFlags.NewScissorTest;
ctx->Scissor.EnableFlags = newEnabled;
}
@@ -1115,7 +1116,8 @@ _mesa_set_enablei(struct gl_context *ctx, GLenum cap,
return;
}
if (((ctx->Scissor.EnableFlags >> index) & 1) != state) {
- FLUSH_VERTICES(ctx, _NEW_SCISSOR);
+ FLUSH_VERTICES(ctx,
+ ctx->DriverFlags.NewScissorTest ? 0 : _NEW_SCISSOR);
ctx->NewDriverState |= ctx->DriverFlags.NewScissorTest;
if (state)
ctx->Scissor.EnableFlags |= (1 << index);
diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c
index 2f2e226ab93..b38db06bc86 100644
--- a/src/mesa/main/scissor.c
+++ b/src/mesa/main/scissor.c
@@ -48,7 +48,7 @@ set_scissor_no_notify(struct gl_context *ctx, unsigned idx,
height == ctx->Scissor.ScissorArray[idx].Height)
return;
- FLUSH_VERTICES(ctx, _NEW_SCISSOR);
+ FLUSH_VERTICES(ctx, ctx->DriverFlags.NewScissorRect ? 0 : _NEW_SCISSOR);
ctx->NewDriverState |= ctx->DriverFlags.NewScissorRect;
ctx->Scissor.ScissorArray[idx].X = x;