From 1d0a8cf40d87ee903d7738f05bf87fd4141ce40d Mon Sep 17 00:00:00 2001 From: Mathias Fröhlich Date: Wed, 8 May 2019 08:07:24 +0200 Subject: mesa: Prevent classic swrast crash on a surfaceless context v2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the egl_mesa_platform_surfaceless piglit test as well as the new egl_ext_device_base piglit test on classic swrast. v2: Fix swrast surfaceless contexts on the driver side. Reviewed-by: Emil Velikov Reviewed-by: Marek Olšák Signed-off-by: Mathias Fröhlich --- src/mesa/drivers/dri/swrast/swrast.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/swrast/swrast.c b/src/mesa/drivers/dri/swrast/swrast.c index 94758e60862..8e8d6bd628e 100644 --- a/src/mesa/drivers/dri/swrast/swrast.c +++ b/src/mesa/drivers/dri/swrast/swrast.c @@ -36,6 +36,7 @@ #include "main/api_exec.h" #include "main/context.h" #include "main/extensions.h" +#include "main/fbobject.h" #include "main/formats.h" #include "main/framebuffer.h" #include "main/imports.h" @@ -679,7 +680,7 @@ swrast_check_and_update_window_size( struct gl_context *ctx, struct gl_framebuff { GLsizei width, height; - if (!fb) + if (!fb || fb == _mesa_get_incomplete_framebuffer()) return; get_window_size(fb, &width, &height); @@ -877,6 +878,12 @@ dri_make_current(__DRIcontext * cPriv, mesaDraw = &draw->Base; mesaRead = &read->Base; } + else { + struct gl_framebuffer *incomplete + = _mesa_get_incomplete_framebuffer(); + mesaDraw = incomplete; + mesaRead = incomplete; + } /* check for same context and buffer */ if (mesaCtx == _mesa_get_current_context() -- cgit v1.2.3