summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaura Ekstrand <laura@jlekstrand.net>2018-03-07 20:34:35 -0800
committerLaura Ekstrand <laura@jlekstrand.net>2018-03-12 15:25:51 -0700
commit6e6b0513323ed73e512ced4d0db5099ccd3e8544 (patch)
tree57a4d5b378fd6585207c0b65aea1eaa5e1dbf548
parent573336cbd97b1f1f85b3af8fd1688ef7338e7a40 (diff)
i965: Replace hw blitter with Blorp in CopyPixels.jenkins
Needs to use brw_blorp_blit_miptrees rather than copy in order to properly handle differing image formats.
-rw-r--r--src/mesa/drivers/dri/i965/intel_pixel_copy.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_pixel_copy.c b/src/mesa/drivers/dri/i965/intel_pixel_copy.c
index c2a9d4d601..82ea701551 100644
--- a/src/mesa/drivers/dri/i965/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/i965/intel_pixel_copy.c
@@ -31,18 +31,18 @@
#include "main/fbobject.h"
#include "drivers/common/meta.h"
+#include "brw_blorp.h"
#include "brw_context.h"
#include "intel_buffers.h"
#include "intel_mipmap_tree.h"
#include "intel_pixel.h"
#include "intel_fbo.h"
-#include "intel_blit.h"
#include "intel_batchbuffer.h"
#define FILE_DEBUG_FLAG DEBUG_PIXEL
/**
- * CopyPixels with the blitter. Don't support zooming, pixel transfer, etc.
+ * CopyPixels with Blorp. Don't support zooming, pixel transfer, etc.
*/
static bool
do_blit_copypixels(struct gl_context * ctx,
@@ -175,16 +175,18 @@ do_blit_copypixels(struct gl_context * ctx,
dstx += srcx - orig_srcx;
dsty += srcy - orig_srcy;
- if (!intel_miptree_blit(brw,
+ /* Need flipping code? */
+ brw_blorp_blit_miptrees(brw,
read_irb->mt, read_irb->mt_level, read_irb->mt_layer,
- srcx, srcy, _mesa_is_winsys_fbo(read_fb),
+ read_irb->mt->format, SWIZZLE_XYZW,
draw_irb->mt, draw_irb->mt_level, draw_irb->mt_layer,
- dstx, dsty, _mesa_is_winsys_fbo(fb),
- width, height,
- COLOR_LOGICOP_COPY)) {
- DBG("%s: blit failure\n", __func__);
- return false;
- }
+ draw_irb->mt->format,
+ srcx, srcy,
+ srcx + width, srcy + height,
+ dstx, dsty,
+ dstx + width, dsty + height,
+ GL_NEAREST, false, false /* mirror_y */,
+ false, false);
if (ctx->Query.CurrentOcclusionObject)
ctx->Query.CurrentOcclusionObject->Result += width * height;