[igt-dev] [PATCH i-g-t 3/3] lib/igt_draw: Pass bpp along to rendercopy.
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Nov 16 17:06:43 UTC 2018
On Fri, Nov 16, 2018 at 04:41:49PM +0100, Maarten Lankhorst wrote:
> 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 at linux.intel.com>
> ---
> lib/igt_draw.c | 25 ++++---------------------
> 1 file changed, 4 insertions(+), 21 deletions(-)
>
> diff --git a/lib/igt_draw.c b/lib/igt_draw.c
> index 94f16632730d..7edfc56ecba4 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 = buf->bpp;
tmp.bpp ?
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 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);
> --
> 2.19.1
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Ville Syrjälä
Intel
More information about the igt-dev
mailing list