From: Mathias Fröhlich <[email protected]> Hi Emil,
thanks for that hint to look at _mesa_get_incomplete_framebuffer. That one seems definitely more appropriate! Though, I miss a bit the idea how I can create either a sensible helper function for that task or how I can create something above in the call stack to the MakeCurrent call that already catches this case. Since that incomplete framebuffer is a mesa side thing I cannot easily pull that above the __DriverAPIRec::MakeCurrent call. But really putting those hand full lines of code into a helper does as well not gain much. So I implemented that for the swrast case directly. So, to mention, I sent that change including our egl device code with some unrelated egl device fixes through intels CI and did not get regressions. please review thanks and best Mathias This fixes the egl_mesa_platform_surfaceless piglit test as well as the new device egl extensions piglit test on classic swrast. v2: Fix swrast surfaceless contexts on the driver side. Signed-off-by: Mathias Fröhlich <[email protected]> --- 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 36cf11334cb..4899fb2df95 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" @@ -686,7 +687,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); @@ -884,6 +885,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() -- 2.21.0 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
