From 0a88aa3025db0cc5a68222c7939d7da4d218f1be Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 18 Jun 2019 13:37:16 -0700 Subject: [PATCH] mesa/st: Passthrough scissor when clearing by quad MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The scissor state -is- setup, but the scissor test is not enabled. This can prevent certain optimizations from occurring on tilers where unaffected tiles are thrown out entirely. v2: Only enable scissor test if the scissor test is actually set by the app, to avoid regressing quad-based clears used for other reasons (like a color mask). Signed-off-by: Alyssa Rosenzweig Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_cb_clear.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index 3a49bd4d6c1..0a2a4bf1b25 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -323,6 +323,9 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers) cso_set_stream_outputs(cso, 0, NULL, NULL); cso_set_sample_mask(cso, ~0); cso_set_min_samples(cso, 1); + + /* set scissor if necessary to allow optimization */ + st->clear.raster.scissor = ctx->Scissor.EnableFlags & 1; cso_set_rasterizer(cso, &st->clear.raster); /* viewport state: viewport matching window dims */ -- 2.30.2