From 961a8d71cdc2c0b13dccfd644cca84a2b97912e4 Mon Sep 17 00:00:00 2001 From: Jose Maria Casanova Crespo Date: Fri, 2 Oct 2020 00:55:07 +0100 Subject: [PATCH] vc4: Avoid negative scissor caused by no intersection This fixes 6 tests that were crashing on VC4 since EGL_KHR_swap_buffers_with_damage was enabled. dEQP-EGL.functional.swap_buffers_with_damage.*.buffer_age_render Cc: 20.2 Reviewed-by: Eric Anholt Part-of: --- src/gallium/drivers/vc4/vc4_emit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/vc4/vc4_emit.c b/src/gallium/drivers/vc4/vc4_emit.c index b45ffb75aa9..73eca2caa50 100644 --- a/src/gallium/drivers/vc4/vc4_emit.c +++ b/src/gallium/drivers/vc4/vc4_emit.c @@ -50,13 +50,13 @@ vc4_emit_state(struct pipe_context *pctx) if (!vc4->rasterizer->base.scissor) { minx = MAX2(vp_minx, 0); miny = MAX2(vp_miny, 0); - maxx = MIN2(vp_maxx, job->draw_width); - maxy = MIN2(vp_maxy, job->draw_height); + maxx = MAX2(MIN2(vp_maxx, job->draw_width), minx); + maxy = MAX2(MIN2(vp_maxy, job->draw_height), miny); } else { minx = MAX2(vp_minx, vc4->scissor.minx); miny = MAX2(vp_miny, vc4->scissor.miny); - maxx = MIN2(vp_maxx, vc4->scissor.maxx); - maxy = MIN2(vp_maxy, vc4->scissor.maxy); + maxx = MAX2(MIN2(vp_maxx, vc4->scissor.maxx), minx); + maxy = MAX2(MIN2(vp_maxy, vc4->scissor.maxy), miny); } cl_emit(&job->bcl, CLIP_WINDOW, clip) {