[PATCH i-g-t v2 16/18] tests/kms_ccs: Fix planar blits for xe2

Ville Syrjala ville.syrjala at linux.intel.com
Wed Sep 18 12:05:16 UTC 2024


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Try to handle each color plane of planar formats
correctly in the xe2 blitter code.

TODO: combine with the blitter code in igt_fb.c

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 tests/intel/kms_ccs.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
index 971d9fe0fcae..bb18784e6fac 100644
--- a/tests/intel/kms_ccs.c
+++ b/tests/intel/kms_ccs.c
@@ -629,9 +629,10 @@ static struct blt_copy_object *blt_fb_init(const struct igt_fb *fb,
 	return blt;
 }
 
-static enum blt_color_depth blt_get_bpp(const struct igt_fb *fb)
+static enum blt_color_depth blt_get_bpp(const struct igt_fb *fb,
+					int color_plane)
 {
-	switch (fb->plane_bpp[0]) {
+	switch (fb->plane_bpp[color_plane]) {
 	case 8:
 		return CD_8bit;
 	case 16:
@@ -706,18 +707,18 @@ static void xe2_ccs_blit(data_t *data, struct igt_fb *fb, struct igt_fb *temp_fb
 		dst = blt_fb_init(dst_fb, i, mem_region, intel_get_pat_idx_wt(dst_fb->fd));
 
 		blt_copy_init(src_fb->fd, &blt);
-		blt.color_depth = blt_get_bpp(src_fb);
+		blt.color_depth = blt_get_bpp(src_fb, i);
 		blt_set_copy_object(&blt.src, src);
 		blt_set_copy_object(&blt.dst, dst);
 
 		blt_set_object_ext(&ext.src,
 				blt_compression_format(&blt, src_fb),
-				src_fb->width, src_fb->height,
+				src_fb->plane_width[i], src_fb->plane_height[i],
 				SURFACE_TYPE_2D);
 
 		blt_set_object_ext(&ext.dst,
 				blt_compression_format(&blt, dst_fb),
-				dst_fb->width, dst_fb->height,
+				dst_fb->plane_width[i], dst_fb->plane_height[i],
 				SURFACE_TYPE_2D);
 
 		pext = &ext;
-- 
2.44.2



More information about the igt-dev mailing list