From c7b3e2465773f9fb30bf45976732028e4e4dc365 Mon Sep 17 00:00:00 2001 From: Ville Syrjälä Date: Wed, 18 Jul 2018 17:38:07 +0300 Subject: lib/kms: Pass the number of planes explicitly to __kms_addfb() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently __kms_addfb() assumes that only the first plane can be at offset 0. I don't particularly like such assumptions so let's just pass in the number of planes explicitly. We'll also require offsets[] to be passed in always. Nothing really to gain by making it optional. Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni --- tests/kms_available_modes_crc.c | 5 ++++- tests/kms_draw_crc.c | 3 ++- tests/prime_vgem.c | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/kms_available_modes_crc.c b/tests/kms_available_modes_crc.c index e77bd80f..09fb2e99 100644 --- a/tests/kms_available_modes_crc.c +++ b/tests/kms_available_modes_crc.c @@ -256,6 +256,7 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane, unsigned tile_width, tile_height; uint32_t strides[4] = {}; uint32_t offsets[4] = {}; + int num_planes = 1; uint64_t tiling; int bpp = 0; int i; @@ -302,6 +303,7 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane, offsets[1] = data->size; strides[1] = strides[0]; gemsize = data->size * 2; + num_planes = 2; } data->gem_handle = gem_create(data->gfx_fd, gemsize); @@ -312,7 +314,8 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane, ret = __kms_addfb(data->gfx_fd, data->gem_handle, w, h, format, tiling, strides, offsets, - LOCAL_DRM_MODE_FB_MODIFIERS, &data->fb.fb_id); + num_planes, LOCAL_DRM_MODE_FB_MODIFIERS, + &data->fb.fb_id); if(ret < 0) { igt_info("Creating fb for format %s failed, return code %d\n", diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c index fb10d7cc..90904714 100644 --- a/tests/kms_draw_crc.c +++ b/tests/kms_draw_crc.c @@ -156,6 +156,7 @@ static void get_method_crc(enum igt_draw_method method, uint32_t drm_format, static bool format_is_supported(uint32_t format, uint64_t modifier) { uint32_t gem_handle, fb_id; + unsigned int offsets[4] = {}; unsigned int strides[4] = {}; int ret; @@ -163,7 +164,7 @@ static bool format_is_supported(uint32_t format, uint64_t modifier) format, modifier, 0, NULL, &strides[0], NULL); ret = __kms_addfb(drm_fd, gem_handle, 64, 64, - format, modifier, strides, NULL, + format, modifier, strides, offsets, 1, LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id); drmModeRmFB(drm_fd, fb_id); gem_close(drm_fd, gem_handle); diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c index b95fd4f5..5e0c4e28 100644 --- a/tests/prime_vgem.c +++ b/tests/prime_vgem.c @@ -751,6 +751,7 @@ static void test_flip(int i915, int vgem, unsigned hang) for (int i = 0; i < 2; i++) { uint32_t strides[4] = {}; + uint32_t offsets[4] = {}; int fd; bo[i].width = 1024; @@ -768,7 +769,7 @@ static void test_flip(int i915, int vgem, unsigned hang) do_or_die(__kms_addfb(i915, handle[i], bo[i].width, bo[i].height, DRM_FORMAT_XRGB8888, I915_TILING_NONE, - strides, NULL, + strides, offsets, 1, LOCAL_DRM_MODE_FB_MODIFIERS, &fb_id[i])); igt_assert(fb_id[i]); } -- cgit v1.2.3