Now, st_update_window_rectangles() won't be called when the
scissor is going to be updated.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
box += 4;
}
- FLUSH_VERTICES(ctx, _NEW_SCISSOR);
+ FLUSH_VERTICES(ctx, 0);
+ ctx->NewDriverState |= ctx->DriverFlags.NewWindowRectangles;
+
memcpy(ctx->Scissor.WindowRects, newval,
sizeof(struct gl_scissor_rect) * count);
ctx->Scissor.NumWindowRects = count;
if (new_state & _NEW_SCISSOR)
st->dirty |= ST_NEW_RASTERIZER |
- ST_NEW_SCISSOR |
- ST_NEW_WINDOW_RECTANGLES;
+ ST_NEW_SCISSOR;
if (new_state & _NEW_FOG)
st->dirty |= ST_NEW_FS_STATE;
f->NewAtomicBuffer = ST_NEW_ATOMIC_BUFFER;
f->NewShaderStorageBuffer = ST_NEW_STORAGE_BUFFER;
f->NewImageUnits = ST_NEW_IMAGE_UNITS;
+ f->NewWindowRectangles = ST_NEW_WINDOW_RECTANGLES;
}
struct st_context *st_create_context(gl_api api, struct pipe_context *pipe,