From fb3d62fe3d4fc40ba4ad9804d8b6f451316c9ae2 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 6 Aug 2013 14:36:09 -0700 Subject: [PATCH] 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" --- src/mesa/drivers/dri/i965/intel_fbo.c | 5 +++++ 1 file changed, 5 insertions(+) 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; -- 2.30.2