From: Alyssa Rosenzweig Date: Tue, 18 Jun 2019 20:37:16 +0000 (-0700) Subject: mesa/st: Passthrough scissor when clearing by quad X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0a88aa3025db0cc5a68222c7939d7da4d218f1be;p=mesa.git mesa/st: Passthrough scissor when clearing by quad 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 --- 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 */