[igt-dev] [i-g-t] lib/igt_fb: Align width to 256B

Tejas Upadhyay tejaskumarx.surendrakumar.upadhyay at intel.com
Tue Jul 27 09:54:51 UTC 2021


some display resolutions like 1366x768 6bpc which does not
have 64B aligned width are creating crc mismatch in
kms_plane_alpha_blend test on Intel platforms.

Also having different alignment requirement by different drivers,
256B aligned width should work for all drm drivers.

amdgpu and radeon, amdgpu_align_pitch: 256B
armada, armada_pitch: 128B
exynos_drm_gem_dumb_create: No alignment required
drm_gem_shmem_dumb_create: 8B
drm_gem_vram_fill_create_dumb: 8B

Thus 256B covers everything we see in the kernel drm drivers.

Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay at intel.com>
---
 lib/igt_fb.c                  | 2 +-
 tests/kms_plane_alpha_blend.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 75ab217b..4a08b774 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -683,7 +683,7 @@ void igt_init_fb(struct igt_fb *fb, int fd, int width, int height,
 
 	memset(fb, 0, sizeof(*fb));
 
-	fb->width = width;
+	fb->width = ALIGN(width, 256);
 	fb->height = height;
 	fb->modifier = modifier;
 	fb->drm_format = drm_format;
diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c
index d649a09f..817d738f 100644
--- a/tests/kms_plane_alpha_blend.c
+++ b/tests/kms_plane_alpha_blend.c
@@ -186,6 +186,7 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe)
 		igt_create_fb(data->gfx_fd, w, h,
 			      DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_NONE,
 			      &data->xrgb_fb);
+		w = data->xrgb_fb.width;
 		draw_gradient(&data->xrgb_fb, w, h, 1.);
 
 		igt_create_fb(data->gfx_fd, w, h,
-- 
2.31.1



More information about the igt-dev mailing list