summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;