summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/intel_pixel_copy.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2014-02-05 10:59:02 -0800
committerKristian Høgsberg <krh@bitplanet.net>2014-02-05 11:10:39 -0800
commit44338cd826623ae0675861015a56c528261f3fd3 (patch)
tree08f29922471791f9168c29631d9d7e02247ff1d9 /src/mesa/drivers/dri/i965/intel_pixel_copy.c
parentdb98d238e237f19c3d1bc201e748ed5bf289ba6b (diff)
downloadexternal_mesa3d-44338cd826623ae0675861015a56c528261f3fd3.zip
external_mesa3d-44338cd826623ae0675861015a56c528261f3fd3.tar.gz
external_mesa3d-44338cd826623ae0675861015a56c528261f3fd3.tar.bz2
i965: Move intel_prepare_render() above first buffer access
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>
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_pixel_copy.c')
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_copy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_copy.c b/src/mesa/drivers/dri/i965/intel_pixel_copy.c
index b2795c6..486e308 100644
--- a/src/mesa/drivers/dri/i965/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/i965/intel_pixel_copy.c
@@ -66,6 +66,8 @@ do_blit_copypixels(struct gl_context * ctx,
/* Update draw buffer bounds */
_mesa_update_state(ctx);
+ intel_prepare_render(brw);
+
switch (type) {
case GL_COLOR:
if (fb->_NumColorDrawBuffers != 1) {
@@ -148,8 +150,6 @@ do_blit_copypixels(struct gl_context * ctx,
return false;
}
- intel_prepare_render(brw);
-
intel_batchbuffer_flush(brw);
/* Clip to destination buffer. */