summaryrefslogtreecommitdiff
path: root/lib/igt_draw.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2018-11-16 15:21:55 +0100
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2018-11-20 17:37:22 +0100
commit53bb24ad410b53cdd96f15ced8fd5921c8ab0eac (patch)
tree65056c6cda08751e05bf82450c05fd1067ba6710 /lib/igt_draw.c
parent239bca3cbd3d3c6194d42edf2acd5761f05ba75a (diff)
lib/igt_draw: Pass bpp along to rendercopy.
Now that rendercopy can perform copies for 8 bpp and 16 bpp, there's no reason we have to skip on odd x/w any more for 16 bpp. Pass the correct bpp to rendercopy, and prevent tests from skipping. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> [mlankhorst: set src_buf.bpp to tmp.bpp (Ville)] Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'lib/igt_draw.c')
-rw-r--r--lib/igt_draw.c25
1 files changed, 4 insertions, 21 deletions
diff --git a/lib/igt_draw.c b/lib/igt_draw.c
index 94f16632..a9a73cb8 100644
--- a/lib/igt_draw.c
+++ b/lib/igt_draw.c
@@ -573,16 +573,9 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
uint32_t tiling, swizzle;
struct buf_data tmp;
int pixel_size = buf->bpp / 8;
- unsigned adjusted_w, adjusted_dst_x;
igt_skip_on(!rendercopy);
- /* Rendercopy works at 32bpp, so if you try to do copies on buffers with
- * smaller bpps you won't succeeed if you need to copy "half" of a 32bpp
- * pixel or something similar. */
- igt_skip_on(rect->x % (32 / buf->bpp) != 0 ||
- rect->w % (32 / buf->bpp) != 0);
-
igt_require(gem_get_tiling(fd, buf->handle, &tiling, &swizzle));
/* We create a temporary buffer and copy from it using rendercopy. */
@@ -602,28 +595,18 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
src_buf.stride = tmp.stride;
src_buf.tiling = I915_TILING_NONE;
src_buf.size = tmp.size;
- src_buf.bpp = 32;
+ src_buf.bpp = tmp.bpp;
dst_buf.bo = dst;
dst_buf.stride = buf->stride;
dst_buf.tiling = tiling;
dst_buf.size = buf->size;
- dst_buf.bpp = 32;
+ dst_buf.bpp = buf->bpp;
batch = intel_batchbuffer_alloc(cmd_data->bufmgr, devid);
igt_assert(batch);
- switch (buf->bpp) {
- case 16:
- case 32:
- adjusted_w = rect->w / (32 / buf->bpp);
- adjusted_dst_x = rect->x / (32 / buf->bpp);
- break;
- default:
- igt_assert(false);
- }
-
- rendercopy(batch, cmd_data->context, &src_buf, 0, 0, adjusted_w,
- rect->h, &dst_buf, adjusted_dst_x, rect->y);
+ rendercopy(batch, cmd_data->context, &src_buf, 0, 0, rect->w,
+ rect->h, &dst_buf, rect->x, rect->y);
intel_batchbuffer_free(batch);
drm_intel_bo_unreference(src);