From: Kenneth Graunke Date: Tue, 6 Aug 2013 21:36:09 +0000 (-0700) Subject: i965: Remember to call intel_prepare_render() before blitting. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fb3d62fe3d4fc40ba4ad9804d8b6f451316c9ae2;p=mesa.git i965: Remember to call intel_prepare_render() before blitting. Otherwise, blits to the window system buffer may cause crashes, since dst_irb->mt may be NULL. This code is lifted straight out of brw_blorp_framebuffer()'s try_blorp_blit() helper. Fixes crashes in Piglit's fbo-sys-blit on systems without BLORP. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65919 Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Chad Versace Cc: "9.2" --- diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c index fb0bb71b028..1692325903b 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.c +++ b/src/mesa/drivers/dri/i965/intel_fbo.c @@ -695,6 +695,11 @@ intel_blit_framebuffer_with_blitter(struct gl_context *ctx, { struct brw_context *brw = brw_context(ctx); + /* Sync up the state of window system buffers. We need to do this before + * we go looking for the buffers. + */ + intel_prepare_render(brw); + if (mask & GL_COLOR_BUFFER_BIT) { GLint i; const struct gl_framebuffer *drawFb = ctx->DrawBuffer;