The driver is supposed to ensure buffers before any drawing operation, but in
do_blit_drawpixels() and do_blit_copypixels() we inspect the buffer format
before calling intel_prepare_render(). That was covered up by the
unconditional call to intel_prepare_render() in intelMakeCurrent(), but we
now only do this on the initial intelMakeCurrent call for a context
(to get the size for the initial viewport values).
https://bugs.freedesktop.org/show_bug.cgi?id=74083
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Alexander Monakov <amonakov@gmail.com>
/* Update draw buffer bounds */
_mesa_update_state(ctx);
+ intel_prepare_render(brw);
+
switch (type) {
case GL_COLOR:
if (fb->_NumColorDrawBuffers != 1) {
return false;
}
- intel_prepare_render(brw);
-
intel_batchbuffer_flush(brw);
/* Clip to destination buffer. */
return false;
}
+ intel_prepare_render(brw);
+
struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0];
struct intel_renderbuffer *irb = intel_renderbuffer(rb);
src_offset += _mesa_image_offset(2, unpack, width, height,
format, type, 0, 0, 0);
- intel_prepare_render(brw);
-
src_buffer = intel_bufferobj_buffer(brw, src,
src_offset, width * height *
irb->mt->cpp);