All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too
@ 2013-04-17 19:18 ville.syrjala
  2013-04-17 19:18 ` [PATCH libdrm 2/5] modetest: Fix pitches, somewhat ville.syrjala
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: ville.syrjala @ 2013-04-17 19:18 UTC (permalink / raw)
  To: dri-devel

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

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/modetest/buffers.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
index 5086381..6b117b4 100644
--- a/tests/modetest/buffers.c
+++ b/tests/modetest/buffers.c
@@ -601,7 +601,7 @@ fill_smpte(const struct format_info *info, void *planes[3], unsigned int width,
 #define BLUE  0
 
 static void
-make_pwetty(void *data, int width, int height, int stride)
+make_pwetty(void *data, int width, int height, int stride, int rgb16)
 {
 #ifdef HAVE_CAIRO
 	cairo_surface_t *surface;
@@ -609,7 +609,7 @@ make_pwetty(void *data, int width, int height, int stride)
 	int x, y;
 
 	surface = cairo_image_surface_create_for_data(data,
-						      CAIRO_FORMAT_ARGB32,
+						      rgb16 ? CAIRO_FORMAT_RGB16_565 : CAIRO_FORMAT_ARGB32,
 						      width, height,
 						      stride);
 	cr = cairo_create(surface);
@@ -716,6 +716,7 @@ static void
 fill_tiles_rgb16(const struct rgb_info *rgb, unsigned char *mem,
 		 unsigned int width, unsigned int height, unsigned int stride)
 {
+	unsigned char *mem_base = mem;
 	unsigned int x, y;
 
 	for (y = 0; y < height; ++y) {
@@ -732,6 +733,8 @@ fill_tiles_rgb16(const struct rgb_info *rgb, unsigned char *mem,
 		}
 		mem += stride;
 	}
+
+	make_pwetty(mem_base, width, height, stride, 1);
 }
 
 static void
@@ -777,7 +780,7 @@ fill_tiles_rgb32(const struct rgb_info *rgb, unsigned char *mem,
 		mem += stride;
 	}
 
-	make_pwetty(mem_base, width, height, stride);
+	make_pwetty(mem_base, width, height, stride, 0);
 }
 
 static void
-- 
1.8.1.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH libdrm 2/5] modetest: Fix pitches, somewhat
  2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
@ 2013-04-17 19:18 ` ville.syrjala
  2013-04-18 13:45   ` Laurent Pinchart
  2013-04-17 19:18 ` [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats ville.syrjala
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: ville.syrjala @ 2013-04-17 19:18 UTC (permalink / raw)
  To: dri-devel

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

libkms only has the xrgb8888 format, so we're overallocating the bo by
quite a lot in some cases. But we still need to get the pitch from the
libkms since it's the driver that decides how to align it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/modetest/buffers.c | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
index 6b117b4..7f534a1 100644
--- a/tests/modetest/buffers.c
+++ b/tests/modetest/buffers.c
@@ -948,9 +948,9 @@ create_test_buffer(struct kms_driver *kms, unsigned int format,
 	case DRM_FORMAT_VYUY:
 	case DRM_FORMAT_YUYV:
 	case DRM_FORMAT_YVYU:
-		pitches[0] = width * 2;
 		offsets[0] = 0;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
+		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
 
 		planes[0] = virtual;
 		break;
@@ -959,11 +959,11 @@ create_test_buffer(struct kms_driver *kms, unsigned int format,
 	case DRM_FORMAT_NV21:
 	case DRM_FORMAT_NV16:
 	case DRM_FORMAT_NV61:
-		pitches[0] = width;
 		offsets[0] = 0;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
-		pitches[1] = width;
-		offsets[1] = width * height;
+		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
+		pitches[1] = pitches[0];
+		offsets[1] = pitches[0] * height;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]);
 
 		planes[0] = virtual;
@@ -971,14 +971,14 @@ create_test_buffer(struct kms_driver *kms, unsigned int format,
 		break;
 
 	case DRM_FORMAT_YVU420:
-		pitches[0] = width;
 		offsets[0] = 0;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
-		pitches[1] = width / 2;
-		offsets[1] = width * height;
+		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
+		pitches[1] = pitches[0] / 2;
+		offsets[1] = pitches[0] * height;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]);
-		pitches[2] = width / 2;
-		offsets[2] = offsets[1] + (width * height) / 4;
+		pitches[2] = pitches[1];
+		offsets[2] = offsets[1] + pitches[1] * height / 2;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[2]);
 
 		planes[0] = virtual;
@@ -989,29 +989,15 @@ create_test_buffer(struct kms_driver *kms, unsigned int format,
 	case DRM_FORMAT_RGB565:
 	case DRM_FORMAT_ARGB1555:
 	case DRM_FORMAT_XRGB1555:
-		pitches[0] = width * 2;
-		offsets[0] = 0;
-		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
-
-		planes[0] = virtual;
-		break;
-
 	case DRM_FORMAT_BGR888:
 	case DRM_FORMAT_RGB888:
-		pitches[0] = width * 3;
-		offsets[0] = 0;
-		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
-
-		planes[0] = virtual;
-		break;
-
 	case DRM_FORMAT_ARGB8888:
 	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_XRGB8888:
 	case DRM_FORMAT_BGRX8888:
-		pitches[0] = width * 4;
 		offsets[0] = 0;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
+		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
 
 		planes[0] = virtual;
 		break;
-- 
1.8.1.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats
  2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
  2013-04-17 19:18 ` [PATCH libdrm 2/5] modetest: Fix pitches, somewhat ville.syrjala
@ 2013-04-17 19:18 ` ville.syrjala
  2013-04-18 13:56   ` Laurent Pinchart
  2013-04-17 19:18 ` [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes ville.syrjala
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: ville.syrjala @ 2013-04-17 19:18 UTC (permalink / raw)
  To: dri-devel

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

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/modetest/buffers.c | 120 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 115 insertions(+), 5 deletions(-)

diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
index 7f534a1..3b1685c 100644
--- a/tests/modetest/buffers.c
+++ b/tests/modetest/buffers.c
@@ -102,17 +102,44 @@ static const struct format_info format_info[] = {
 	/* YUV planar */
 	{ DRM_FORMAT_YVU420, "YV12", MAKE_YUV_INFO(YUV_YCrCb, 2, 2, 1) },
 	/* RGB16 */
+	{ DRM_FORMAT_ARGB4444, "AR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 4, 12) },
+	{ DRM_FORMAT_XRGB4444, "XR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 0, 0) },
+	{ DRM_FORMAT_ABGR4444, "AB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 4, 12) },
+	{ DRM_FORMAT_XBGR4444, "XB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 0, 0) },
+	{ DRM_FORMAT_RGBA4444, "RA12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 4, 0) },
+	{ DRM_FORMAT_RGBX4444, "RX12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 0, 0) },
+	{ DRM_FORMAT_BGRA4444, "BA12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 4, 0) },
+	{ DRM_FORMAT_BGRX4444, "BX12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 0, 0) },
 	{ DRM_FORMAT_ARGB1555, "AR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 1, 15) },
 	{ DRM_FORMAT_XRGB1555, "XR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 0, 0) },
+	{ DRM_FORMAT_ABGR1555, "AB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 1, 15) },
+	{ DRM_FORMAT_XBGR1555, "XB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 0, 0) },
+	{ DRM_FORMAT_RGBA5551, "RA15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 1, 0) },
+	{ DRM_FORMAT_RGBX5551, "RX15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 0, 0) },
+	{ DRM_FORMAT_BGRA5551, "BA15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 1, 0) },
+	{ DRM_FORMAT_BGRX5551, "BX15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 0, 0) },
 	{ DRM_FORMAT_RGB565, "RG16", MAKE_RGB_INFO(5, 11, 6, 5, 5, 0, 0, 0) },
+	{ DRM_FORMAT_BGR565, "BG16", MAKE_RGB_INFO(5, 0, 6, 5, 5, 11, 0, 0) },
 	/* RGB24 */
 	{ DRM_FORMAT_BGR888, "BG24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) },
 	{ DRM_FORMAT_RGB888, "RG24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) },
 	/* RGB32 */
 	{ DRM_FORMAT_ARGB8888, "AR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 8, 24) },
-	{ DRM_FORMAT_BGRA8888, "BA24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 8, 0) },
 	{ DRM_FORMAT_XRGB8888, "XR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) },
+	{ DRM_FORMAT_ABGR8888, "AB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 8, 24) },
+	{ DRM_FORMAT_XBGR8888, "XB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) },
+	{ DRM_FORMAT_RGBA8888, "RA24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 8, 0) },
+	{ DRM_FORMAT_RGBX8888, "RX24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 0, 0) },
+	{ DRM_FORMAT_BGRA8888, "BA24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 8, 0) },
 	{ DRM_FORMAT_BGRX8888, "BX24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 0, 0) },
+	{ DRM_FORMAT_ARGB2101010, "AR30", MAKE_RGB_INFO(10, 20, 10, 10, 10, 0, 2, 30) },
+	{ DRM_FORMAT_XRGB2101010, "XR30", MAKE_RGB_INFO(10, 20, 10, 10, 10, 0, 0, 0) },
+	{ DRM_FORMAT_ABGR2101010, "AB30", MAKE_RGB_INFO(10, 0, 10, 10, 10, 20, 2, 30) },
+	{ DRM_FORMAT_XBGR2101010, "XB30", MAKE_RGB_INFO(10, 0, 10, 10, 10, 20, 0, 0) },
+	{ DRM_FORMAT_RGBA1010102, "RA30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 2, 0) },
+	{ DRM_FORMAT_RGBX1010102, "RX30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 0, 0) },
+	{ DRM_FORMAT_BGRA1010102, "BA30", MAKE_RGB_INFO(10, 2, 10, 12, 10, 22, 2, 0) },
+	{ DRM_FORMAT_BGRX1010102, "BX30", MAKE_RGB_INFO(10, 2, 10, 12, 10, 22, 0, 0) },
 };
 
 unsigned int format_fourcc(const char *name)
@@ -577,19 +604,47 @@ fill_smpte(const struct format_info *info, void *planes[3], unsigned int width,
 		return fill_smpte_yuv_planar(&info->yuv, planes[0], planes[1],
 					     planes[2], width, height, stride);
 
+	case DRM_FORMAT_ARGB4444:
+	case DRM_FORMAT_XRGB4444:
+	case DRM_FORMAT_ABGR4444:
+	case DRM_FORMAT_XBGR4444:
+	case DRM_FORMAT_RGBA4444:
+	case DRM_FORMAT_RGBX4444:
+	case DRM_FORMAT_BGRA4444:
+	case DRM_FORMAT_BGRX4444:
 	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
 	case DRM_FORMAT_ARGB1555:
 	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+	case DRM_FORMAT_RGBA5551:
+	case DRM_FORMAT_RGBX5551:
+	case DRM_FORMAT_BGRA5551:
+	case DRM_FORMAT_BGRX5551:
 		return fill_smpte_rgb16(&info->rgb, planes[0],
 					width, height, stride);
+
 	case DRM_FORMAT_BGR888:
 	case DRM_FORMAT_RGB888:
 		return fill_smpte_rgb24(&info->rgb, planes[0],
 					width, height, stride);
 	case DRM_FORMAT_ARGB8888:
-	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_XRGB2101010:
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_XBGR2101010:
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_RGBX1010102:
+	case DRM_FORMAT_BGRA1010102:
+	case DRM_FORMAT_BGRX1010102:
 		return fill_smpte_rgb32(&info->rgb, planes[0],
 					width, height, stride);
 	}
@@ -810,19 +865,47 @@ fill_tiles(const struct format_info *info, void *planes[3], unsigned int width,
 		return fill_tiles_yuv_planar(&info->yuv, planes[0], planes[1],
 					     planes[2], width, height, stride);
 
+	case DRM_FORMAT_ARGB4444:
+	case DRM_FORMAT_XRGB4444:
+	case DRM_FORMAT_ABGR4444:
+	case DRM_FORMAT_XBGR4444:
+	case DRM_FORMAT_RGBA4444:
+	case DRM_FORMAT_RGBX4444:
+	case DRM_FORMAT_BGRA4444:
+	case DRM_FORMAT_BGRX4444:
 	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
 	case DRM_FORMAT_ARGB1555:
 	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+	case DRM_FORMAT_RGBA5551:
+	case DRM_FORMAT_RGBX5551:
+	case DRM_FORMAT_BGRA5551:
+	case DRM_FORMAT_BGRX5551:
 		return fill_tiles_rgb16(&info->rgb, planes[0],
 					width, height, stride);
+
 	case DRM_FORMAT_BGR888:
 	case DRM_FORMAT_RGB888:
 		return fill_tiles_rgb24(&info->rgb, planes[0],
 					width, height, stride);
 	case DRM_FORMAT_ARGB8888:
-	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_XRGB2101010:
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_XBGR2101010:
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_RGBX1010102:
+	case DRM_FORMAT_BGRA1010102:
+	case DRM_FORMAT_BGRX1010102:
 		return fill_tiles_rgb32(&info->rgb, planes[0],
 					width, height, stride);
 	}
@@ -986,15 +1069,42 @@ create_test_buffer(struct kms_driver *kms, unsigned int format,
 		planes[2] = virtual + offsets[2];
 		break;
 
-	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_ARGB4444:
+	case DRM_FORMAT_XRGB4444:
+	case DRM_FORMAT_ABGR4444:
+	case DRM_FORMAT_XBGR4444:
+	case DRM_FORMAT_RGBA4444:
+	case DRM_FORMAT_RGBX4444:
+	case DRM_FORMAT_BGRA4444:
+	case DRM_FORMAT_BGRX4444:
 	case DRM_FORMAT_ARGB1555:
 	case DRM_FORMAT_XRGB1555:
+	case DRM_FORMAT_ABGR1555:
+	case DRM_FORMAT_XBGR1555:
+	case DRM_FORMAT_RGBA5551:
+	case DRM_FORMAT_RGBX5551:
+	case DRM_FORMAT_BGRA5551:
+	case DRM_FORMAT_BGRX5551:
+	case DRM_FORMAT_RGB565:
+	case DRM_FORMAT_BGR565:
 	case DRM_FORMAT_BGR888:
 	case DRM_FORMAT_RGB888:
 	case DRM_FORMAT_ARGB8888:
-	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_XRGB8888:
+	case DRM_FORMAT_ABGR8888:
+	case DRM_FORMAT_XBGR8888:
+	case DRM_FORMAT_RGBA8888:
+	case DRM_FORMAT_RGBX8888:
+	case DRM_FORMAT_BGRA8888:
 	case DRM_FORMAT_BGRX8888:
+	case DRM_FORMAT_ARGB2101010:
+	case DRM_FORMAT_XRGB2101010:
+	case DRM_FORMAT_ABGR2101010:
+	case DRM_FORMAT_XBGR2101010:
+	case DRM_FORMAT_RGBA1010102:
+	case DRM_FORMAT_RGBX1010102:
+	case DRM_FORMAT_BGRA1010102:
+	case DRM_FORMAT_BGRX1010102:
 		offsets[0] = 0;
 		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
 		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
-- 
1.8.1.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes
  2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
  2013-04-17 19:18 ` [PATCH libdrm 2/5] modetest: Fix pitches, somewhat ville.syrjala
  2013-04-17 19:18 ` [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats ville.syrjala
@ 2013-04-17 19:18 ` ville.syrjala
  2013-04-18 13:46   ` Laurent Pinchart
  2013-04-17 19:18 ` [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string ville.syrjala
  2013-04-18 13:43 ` [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too Laurent Pinchart
  4 siblings, 1 reply; 13+ messages in thread
From: ville.syrjala @ 2013-04-17 19:18 UTC (permalink / raw)
  To: dri-devel

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

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

diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index c91bb9d..27cd2ce 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -429,7 +429,7 @@ static void dump_planes(void)
 	}
 
 	printf("Planes:\n");
-	printf("id\tcrtc\tfb\tCRTC x,y\tx,y\tgamma size\n");
+	printf("id\tcrtc\tfb\tCRTC x,y\tx,y\tgamma size\tpossible crtcs\n");
 	for (i = 0; i < plane_resources->count_planes; i++) {
 		ovr = drmModeGetPlane(fd, plane_resources->planes[i]);
 		if (!ovr) {
@@ -438,10 +438,10 @@ static void dump_planes(void)
 			continue;
 		}
 
-		printf("%d\t%d\t%d\t%d,%d\t\t%d,%d\t%d\n",
+		printf("%d\t%d\t%d\t%d,%d\t\t%d,%d\t%-8d\t0x%08x\n",
 		       ovr->plane_id, ovr->crtc_id, ovr->fb_id,
 		       ovr->crtc_x, ovr->crtc_y, ovr->x, ovr->y,
-		       ovr->gamma_size);
+		       ovr->gamma_size, ovr->possible_crtcs);
 
 		if (!ovr->count_formats)
 			continue;
-- 
1.8.1.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string
  2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
                   ` (2 preceding siblings ...)
  2013-04-17 19:18 ` [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes ville.syrjala
@ 2013-04-17 19:18 ` ville.syrjala
  2013-04-18 13:46   ` Laurent Pinchart
  2013-04-18 13:43 ` [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too Laurent Pinchart
  4 siblings, 1 reply; 13+ messages in thread
From: ville.syrjala @ 2013-04-17 19:18 UTC (permalink / raw)
  To: dri-devel

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

Spelling out eDP or DP make for a ridicilously long string which plays
havoc with formatting. Just say eDP or DP.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/modetest/modetest.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
index 27cd2ce..8afd2b1 100644
--- a/tests/modetest/modetest.c
+++ b/tests/modetest/modetest.c
@@ -106,11 +106,11 @@ struct type_name connector_type_names[] = {
 	{ DRM_MODE_CONNECTOR_LVDS, "LVDS" },
 	{ DRM_MODE_CONNECTOR_Component, "component" },
 	{ DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" },
-	{ DRM_MODE_CONNECTOR_DisplayPort, "displayport" },
+	{ DRM_MODE_CONNECTOR_DisplayPort, "DP" },
 	{ DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
 	{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
 	{ DRM_MODE_CONNECTOR_TV, "TV" },
-	{ DRM_MODE_CONNECTOR_eDP, "embedded displayport" },
+	{ DRM_MODE_CONNECTOR_eDP, "eDP" },
 };
 
 type_name_fn(connector_type)
-- 
1.8.1.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too
  2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
                   ` (3 preceding siblings ...)
  2013-04-17 19:18 ` [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string ville.syrjala
@ 2013-04-18 13:43 ` Laurent Pinchart
  2013-04-18 14:06   ` Ville Syrjälä
  4 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 13:43 UTC (permalink / raw)
  To: dri-devel

Hi Ville,

Thank you for the patch.

On Wednesday 17 April 2013 22:18:01 ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tests/modetest/buffers.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> index 5086381..6b117b4 100644
> --- a/tests/modetest/buffers.c
> +++ b/tests/modetest/buffers.c
> @@ -601,7 +601,7 @@ fill_smpte(const struct format_info *info, void
> *planes[3], unsigned int width, #define BLUE  0
> 
>  static void
> -make_pwetty(void *data, int width, int height, int stride)
> +make_pwetty(void *data, int width, int height, int stride, int rgb16)

What about passing the format 4cc instead ?

>  {
>  #ifdef HAVE_CAIRO
>  	cairo_surface_t *surface;
> @@ -609,7 +609,7 @@ make_pwetty(void *data, int width, int height, int
> stride) int x, y;
> 
>  	surface = cairo_image_surface_create_for_data(data,
> -						      CAIRO_FORMAT_ARGB32,
> +						      rgb16 ? CAIRO_FORMAT_RGB16_565 : 
CAIRO_FORMAT_ARGB32,
>  						      width, height,
>  						      stride);
>  	cr = cairo_create(surface);
> @@ -716,6 +716,7 @@ static void
>  fill_tiles_rgb16(const struct rgb_info *rgb, unsigned char *mem,
>  		 unsigned int width, unsigned int height, unsigned int stride)
>  {
> +	unsigned char *mem_base = mem;
>  	unsigned int x, y;
> 
>  	for (y = 0; y < height; ++y) {
> @@ -732,6 +733,8 @@ fill_tiles_rgb16(const struct rgb_info *rgb, unsigned
> char *mem, }
>  		mem += stride;
>  	}
> +
> +	make_pwetty(mem_base, width, height, stride, 1);
>  }
> 
>  static void
> @@ -777,7 +780,7 @@ fill_tiles_rgb32(const struct rgb_info *rgb, unsigned
> char *mem, mem += stride;
>  	}
> 
> -	make_pwetty(mem_base, width, height, stride);
> +	make_pwetty(mem_base, width, height, stride, 0);
>  }
> 
>  static void

-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 2/5] modetest: Fix pitches, somewhat
  2013-04-17 19:18 ` [PATCH libdrm 2/5] modetest: Fix pitches, somewhat ville.syrjala
@ 2013-04-18 13:45   ` Laurent Pinchart
  0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 13:45 UTC (permalink / raw)
  To: dri-devel

On Wednesday 17 April 2013 22:18:02 ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> libkms only has the xrgb8888 format, so we're overallocating the bo by
> quite a lot in some cases. But we still need to get the pitch from the
> libkms since it's the driver that decides how to align it.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  tests/modetest/buffers.c | 34 ++++++++++------------------------
>  1 file changed, 10 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> index 6b117b4..7f534a1 100644
> --- a/tests/modetest/buffers.c
> +++ b/tests/modetest/buffers.c
> @@ -948,9 +948,9 @@ create_test_buffer(struct kms_driver *kms, unsigned int
> format, case DRM_FORMAT_VYUY:
>  	case DRM_FORMAT_YUYV:
>  	case DRM_FORMAT_YVYU:
> -		pitches[0] = width * 2;
>  		offsets[0] = 0;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> +		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
> 
>  		planes[0] = virtual;
>  		break;
> @@ -959,11 +959,11 @@ create_test_buffer(struct kms_driver *kms, unsigned
> int format, case DRM_FORMAT_NV21:
>  	case DRM_FORMAT_NV16:
>  	case DRM_FORMAT_NV61:
> -		pitches[0] = width;
>  		offsets[0] = 0;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> -		pitches[1] = width;
> -		offsets[1] = width * height;
> +		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
> +		pitches[1] = pitches[0];
> +		offsets[1] = pitches[0] * height;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]);
> 
>  		planes[0] = virtual;
> @@ -971,14 +971,14 @@ create_test_buffer(struct kms_driver *kms, unsigned
> int format, break;
> 
>  	case DRM_FORMAT_YVU420:
> -		pitches[0] = width;
>  		offsets[0] = 0;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> -		pitches[1] = width / 2;
> -		offsets[1] = width * height;
> +		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
> +		pitches[1] = pitches[0] / 2;
> +		offsets[1] = pitches[0] * height;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]);
> -		pitches[2] = width / 2;
> -		offsets[2] = offsets[1] + (width * height) / 4;
> +		pitches[2] = pitches[1];
> +		offsets[2] = offsets[1] + pitches[1] * height / 2;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[2]);
> 
>  		planes[0] = virtual;
> @@ -989,29 +989,15 @@ create_test_buffer(struct kms_driver *kms, unsigned
> int format, case DRM_FORMAT_RGB565:
>  	case DRM_FORMAT_ARGB1555:
>  	case DRM_FORMAT_XRGB1555:
> -		pitches[0] = width * 2;
> -		offsets[0] = 0;
> -		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> -
> -		planes[0] = virtual;
> -		break;
> -
>  	case DRM_FORMAT_BGR888:
>  	case DRM_FORMAT_RGB888:
> -		pitches[0] = width * 3;
> -		offsets[0] = 0;
> -		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> -
> -		planes[0] = virtual;
> -		break;
> -
>  	case DRM_FORMAT_ARGB8888:
>  	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_XRGB8888:
>  	case DRM_FORMAT_BGRX8888:
> -		pitches[0] = width * 4;
>  		offsets[0] = 0;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
> +		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
> 
>  		planes[0] = virtual;
>  		break;
-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string
  2013-04-17 19:18 ` [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string ville.syrjala
@ 2013-04-18 13:46   ` Laurent Pinchart
  0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 13:46 UTC (permalink / raw)
  To: dri-devel

On Wednesday 17 April 2013 22:18:05 ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Spelling out eDP or DP make for a ridicilously long string which plays
> havoc with formatting. Just say eDP or DP.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  tests/modetest/modetest.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
> index 27cd2ce..8afd2b1 100644
> --- a/tests/modetest/modetest.c
> +++ b/tests/modetest/modetest.c
> @@ -106,11 +106,11 @@ struct type_name connector_type_names[] = {
>  	{ DRM_MODE_CONNECTOR_LVDS, "LVDS" },
>  	{ DRM_MODE_CONNECTOR_Component, "component" },
>  	{ DRM_MODE_CONNECTOR_9PinDIN, "9-pin DIN" },
> -	{ DRM_MODE_CONNECTOR_DisplayPort, "displayport" },
> +	{ DRM_MODE_CONNECTOR_DisplayPort, "DP" },
>  	{ DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" },
>  	{ DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" },
>  	{ DRM_MODE_CONNECTOR_TV, "TV" },
> -	{ DRM_MODE_CONNECTOR_eDP, "embedded displayport" },
> +	{ DRM_MODE_CONNECTOR_eDP, "eDP" },
>  };
> 
>  type_name_fn(connector_type)
-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes
  2013-04-17 19:18 ` [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes ville.syrjala
@ 2013-04-18 13:46   ` Laurent Pinchart
  0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 13:46 UTC (permalink / raw)
  To: dri-devel

On Wednesday 17 April 2013 22:18:04 ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  tests/modetest/modetest.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c
> index c91bb9d..27cd2ce 100644
> --- a/tests/modetest/modetest.c
> +++ b/tests/modetest/modetest.c
> @@ -429,7 +429,7 @@ static void dump_planes(void)
>  	}
> 
>  	printf("Planes:\n");
> -	printf("id\tcrtc\tfb\tCRTC x,y\tx,y\tgamma size\n");
> +	printf("id\tcrtc\tfb\tCRTC x,y\tx,y\tgamma size\tpossible crtcs\n");
>  	for (i = 0; i < plane_resources->count_planes; i++) {
>  		ovr = drmModeGetPlane(fd, plane_resources->planes[i]);
>  		if (!ovr) {
> @@ -438,10 +438,10 @@ static void dump_planes(void)
>  			continue;
>  		}
> 
> -		printf("%d\t%d\t%d\t%d,%d\t\t%d,%d\t%d\n",
> +		printf("%d\t%d\t%d\t%d,%d\t\t%d,%d\t%-8d\t0x%08x\n",
>  		       ovr->plane_id, ovr->crtc_id, ovr->fb_id,
>  		       ovr->crtc_x, ovr->crtc_y, ovr->x, ovr->y,
> -		       ovr->gamma_size);
> +		       ovr->gamma_size, ovr->possible_crtcs);
> 
>  		if (!ovr->count_formats)
>  			continue;
-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats
  2013-04-17 19:18 ` [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats ville.syrjala
@ 2013-04-18 13:56   ` Laurent Pinchart
  0 siblings, 0 replies; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 13:56 UTC (permalink / raw)
  To: dri-devel

On Wednesday 17 April 2013 22:18:03 ville.syrjala@linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  tests/modetest/buffers.c | 120 ++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 115 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> index 7f534a1..3b1685c 100644
> --- a/tests/modetest/buffers.c
> +++ b/tests/modetest/buffers.c
> @@ -102,17 +102,44 @@ static const struct format_info format_info[] = {
>  	/* YUV planar */
>  	{ DRM_FORMAT_YVU420, "YV12", MAKE_YUV_INFO(YUV_YCrCb, 2, 2, 1) },
>  	/* RGB16 */
> +	{ DRM_FORMAT_ARGB4444, "AR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 4, 12) },
> +	{ DRM_FORMAT_XRGB4444, "XR12", MAKE_RGB_INFO(4, 8, 4, 4, 4, 0, 0, 0) },
> +	{ DRM_FORMAT_ABGR4444, "AB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 4, 12) },
> +	{ DRM_FORMAT_XBGR4444, "XB12", MAKE_RGB_INFO(4, 0, 4, 4, 4, 8, 0, 0) },
> +	{ DRM_FORMAT_RGBA4444, "RA12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 4, 0) },
> +	{ DRM_FORMAT_RGBX4444, "RX12", MAKE_RGB_INFO(4, 12, 4, 8, 4, 4, 0, 0) },
> +	{ DRM_FORMAT_BGRA4444, "BA12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 4, 0) },
> +	{ DRM_FORMAT_BGRX4444, "BX12", MAKE_RGB_INFO(4, 4, 4, 8, 4, 12, 0, 0) },
>  	{ DRM_FORMAT_ARGB1555, "AR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 1, 15) },
>  	{ DRM_FORMAT_XRGB1555, "XR15", MAKE_RGB_INFO(5, 10, 5, 5, 5, 0, 0, 0) },
> +	{ DRM_FORMAT_ABGR1555, "AB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 1, 15) },
> +	{ DRM_FORMAT_XBGR1555, "XB15", MAKE_RGB_INFO(5, 0, 5, 5, 5, 10, 0, 0) },
> +	{ DRM_FORMAT_RGBA5551, "RA15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 1, 0) },
> +	{ DRM_FORMAT_RGBX5551, "RX15", MAKE_RGB_INFO(5, 11, 5, 6, 5, 1, 0, 0) },
> +	{ DRM_FORMAT_BGRA5551, "BA15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 1, 0) },
> +	{ DRM_FORMAT_BGRX5551, "BX15", MAKE_RGB_INFO(5, 1, 5, 6, 5, 11, 0, 0) },
>  	{ DRM_FORMAT_RGB565, "RG16", MAKE_RGB_INFO(5, 11, 6, 5, 5, 0, 0, 0) },
> +	{ DRM_FORMAT_BGR565, "BG16", MAKE_RGB_INFO(5, 0, 6, 5, 5, 11, 0, 0) },
>  	/* RGB24 */
>  	{ DRM_FORMAT_BGR888, "BG24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) },
>  	{ DRM_FORMAT_RGB888, "RG24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) },
>  	/* RGB32 */
>  	{ DRM_FORMAT_ARGB8888, "AR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 8, 24) },
> -	{ DRM_FORMAT_BGRA8888, "BA24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 8, 0) },
>  	{ DRM_FORMAT_XRGB8888, "XR24", MAKE_RGB_INFO(8, 16, 8, 8, 8, 0, 0, 0) },
> +	{ DRM_FORMAT_ABGR8888, "AB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 8, 24) },
> +	{ DRM_FORMAT_XBGR8888, "XB24", MAKE_RGB_INFO(8, 0, 8, 8, 8, 16, 0, 0) },
> +	{ DRM_FORMAT_RGBA8888, "RA24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 8, 0) },
> +	{ DRM_FORMAT_RGBX8888, "RX24", MAKE_RGB_INFO(8, 24, 8, 16, 8, 8, 0, 0) },
> +	{ DRM_FORMAT_BGRA8888, "BA24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 8, 0) },
>  	{ DRM_FORMAT_BGRX8888, "BX24", MAKE_RGB_INFO(8, 8, 8, 16, 8, 24, 0, 0) },
> +	{ DRM_FORMAT_ARGB2101010, "AR30", MAKE_RGB_INFO(10, 20, 10, 10, 10, 0, 2,
> 30) }, +	{ DRM_FORMAT_XRGB2101010, "XR30", MAKE_RGB_INFO(10, 20, 10, 10,
> 10, 0, 0, 0) }, +	{ DRM_FORMAT_ABGR2101010, "AB30", MAKE_RGB_INFO(10, 0,
> 10, 10, 10, 20, 2, 30) }, +	{ DRM_FORMAT_XBGR2101010, "XB30",
> MAKE_RGB_INFO(10, 0, 10, 10, 10, 20, 0, 0) }, +	{ DRM_FORMAT_RGBA1010102,
> "RA30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 2, 0) }, +	{
> DRM_FORMAT_RGBX1010102, "RX30", MAKE_RGB_INFO(10, 22, 10, 12, 10, 2, 0, 0)
> }, +	{ DRM_FORMAT_BGRA1010102, "BA30", MAKE_RGB_INFO(10, 2, 10, 12, 10, 
22,
> 2, 0) }, +	{ DRM_FORMAT_BGRX1010102, "BX30", MAKE_RGB_INFO(10, 2, 10, 12,
> 10, 22, 0, 0) }, };
> 
>  unsigned int format_fourcc(const char *name)
> @@ -577,19 +604,47 @@ fill_smpte(const struct format_info *info, void
> *planes[3], unsigned int width, return fill_smpte_yuv_planar(&info->yuv,
> planes[0], planes[1],
>  					     planes[2], width, height, stride);
> 
> +	case DRM_FORMAT_ARGB4444:
> +	case DRM_FORMAT_XRGB4444:
> +	case DRM_FORMAT_ABGR4444:
> +	case DRM_FORMAT_XBGR4444:
> +	case DRM_FORMAT_RGBA4444:
> +	case DRM_FORMAT_RGBX4444:
> +	case DRM_FORMAT_BGRA4444:
> +	case DRM_FORMAT_BGRX4444:
>  	case DRM_FORMAT_RGB565:
> +	case DRM_FORMAT_BGR565:
>  	case DRM_FORMAT_ARGB1555:
>  	case DRM_FORMAT_XRGB1555:
> +	case DRM_FORMAT_ABGR1555:
> +	case DRM_FORMAT_XBGR1555:
> +	case DRM_FORMAT_RGBA5551:
> +	case DRM_FORMAT_RGBX5551:
> +	case DRM_FORMAT_BGRA5551:
> +	case DRM_FORMAT_BGRX5551:
>  		return fill_smpte_rgb16(&info->rgb, planes[0],
>  					width, height, stride);
> +
>  	case DRM_FORMAT_BGR888:
>  	case DRM_FORMAT_RGB888:
>  		return fill_smpte_rgb24(&info->rgb, planes[0],
>  					width, height, stride);
>  	case DRM_FORMAT_ARGB8888:
> -	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_XRGB8888:
> +	case DRM_FORMAT_ABGR8888:
> +	case DRM_FORMAT_XBGR8888:
> +	case DRM_FORMAT_RGBA8888:
> +	case DRM_FORMAT_RGBX8888:
> +	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_BGRX8888:
> +	case DRM_FORMAT_ARGB2101010:
> +	case DRM_FORMAT_XRGB2101010:
> +	case DRM_FORMAT_ABGR2101010:
> +	case DRM_FORMAT_XBGR2101010:
> +	case DRM_FORMAT_RGBA1010102:
> +	case DRM_FORMAT_RGBX1010102:
> +	case DRM_FORMAT_BGRA1010102:
> +	case DRM_FORMAT_BGRX1010102:
>  		return fill_smpte_rgb32(&info->rgb, planes[0],
>  					width, height, stride);
>  	}
> @@ -810,19 +865,47 @@ fill_tiles(const struct format_info *info, void
> *planes[3], unsigned int width, return fill_tiles_yuv_planar(&info->yuv,
> planes[0], planes[1],
>  					     planes[2], width, height, stride);
> 
> +	case DRM_FORMAT_ARGB4444:
> +	case DRM_FORMAT_XRGB4444:
> +	case DRM_FORMAT_ABGR4444:
> +	case DRM_FORMAT_XBGR4444:
> +	case DRM_FORMAT_RGBA4444:
> +	case DRM_FORMAT_RGBX4444:
> +	case DRM_FORMAT_BGRA4444:
> +	case DRM_FORMAT_BGRX4444:
>  	case DRM_FORMAT_RGB565:
> +	case DRM_FORMAT_BGR565:
>  	case DRM_FORMAT_ARGB1555:
>  	case DRM_FORMAT_XRGB1555:
> +	case DRM_FORMAT_ABGR1555:
> +	case DRM_FORMAT_XBGR1555:
> +	case DRM_FORMAT_RGBA5551:
> +	case DRM_FORMAT_RGBX5551:
> +	case DRM_FORMAT_BGRA5551:
> +	case DRM_FORMAT_BGRX5551:
>  		return fill_tiles_rgb16(&info->rgb, planes[0],
>  					width, height, stride);
> +
>  	case DRM_FORMAT_BGR888:
>  	case DRM_FORMAT_RGB888:
>  		return fill_tiles_rgb24(&info->rgb, planes[0],
>  					width, height, stride);
>  	case DRM_FORMAT_ARGB8888:
> -	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_XRGB8888:
> +	case DRM_FORMAT_ABGR8888:
> +	case DRM_FORMAT_XBGR8888:
> +	case DRM_FORMAT_RGBA8888:
> +	case DRM_FORMAT_RGBX8888:
> +	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_BGRX8888:
> +	case DRM_FORMAT_ARGB2101010:
> +	case DRM_FORMAT_XRGB2101010:
> +	case DRM_FORMAT_ABGR2101010:
> +	case DRM_FORMAT_XBGR2101010:
> +	case DRM_FORMAT_RGBA1010102:
> +	case DRM_FORMAT_RGBX1010102:
> +	case DRM_FORMAT_BGRA1010102:
> +	case DRM_FORMAT_BGRX1010102:
>  		return fill_tiles_rgb32(&info->rgb, planes[0],
>  					width, height, stride);
>  	}
> @@ -986,15 +1069,42 @@ create_test_buffer(struct kms_driver *kms, unsigned
> int format, planes[2] = virtual + offsets[2];
>  		break;
> 
> -	case DRM_FORMAT_RGB565:
> +	case DRM_FORMAT_ARGB4444:
> +	case DRM_FORMAT_XRGB4444:
> +	case DRM_FORMAT_ABGR4444:
> +	case DRM_FORMAT_XBGR4444:
> +	case DRM_FORMAT_RGBA4444:
> +	case DRM_FORMAT_RGBX4444:
> +	case DRM_FORMAT_BGRA4444:
> +	case DRM_FORMAT_BGRX4444:
>  	case DRM_FORMAT_ARGB1555:
>  	case DRM_FORMAT_XRGB1555:
> +	case DRM_FORMAT_ABGR1555:
> +	case DRM_FORMAT_XBGR1555:
> +	case DRM_FORMAT_RGBA5551:
> +	case DRM_FORMAT_RGBX5551:
> +	case DRM_FORMAT_BGRA5551:
> +	case DRM_FORMAT_BGRX5551:
> +	case DRM_FORMAT_RGB565:
> +	case DRM_FORMAT_BGR565:
>  	case DRM_FORMAT_BGR888:
>  	case DRM_FORMAT_RGB888:
>  	case DRM_FORMAT_ARGB8888:
> -	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_XRGB8888:
> +	case DRM_FORMAT_ABGR8888:
> +	case DRM_FORMAT_XBGR8888:
> +	case DRM_FORMAT_RGBA8888:
> +	case DRM_FORMAT_RGBX8888:
> +	case DRM_FORMAT_BGRA8888:
>  	case DRM_FORMAT_BGRX8888:
> +	case DRM_FORMAT_ARGB2101010:
> +	case DRM_FORMAT_XRGB2101010:
> +	case DRM_FORMAT_ABGR2101010:
> +	case DRM_FORMAT_XBGR2101010:
> +	case DRM_FORMAT_RGBA1010102:
> +	case DRM_FORMAT_RGBX1010102:
> +	case DRM_FORMAT_BGRA1010102:
> +	case DRM_FORMAT_BGRX1010102:
>  		offsets[0] = 0;
>  		kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);
>  		kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too
  2013-04-18 13:43 ` [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too Laurent Pinchart
@ 2013-04-18 14:06   ` Ville Syrjälä
  2013-04-18 14:19     ` Laurent Pinchart
  0 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2013-04-18 14:06 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: dri-devel

On Thu, Apr 18, 2013 at 03:43:23PM +0200, Laurent Pinchart wrote:
> Hi Ville,
> 
> Thank you for the patch.
> 
> On Wednesday 17 April 2013 22:18:01 ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  tests/modetest/buffers.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> > index 5086381..6b117b4 100644
> > --- a/tests/modetest/buffers.c
> > +++ b/tests/modetest/buffers.c
> > @@ -601,7 +601,7 @@ fill_smpte(const struct format_info *info, void
> > *planes[3], unsigned int width, #define BLUE  0
> > 
> >  static void
> > -make_pwetty(void *data, int width, int height, int stride)
> > +make_pwetty(void *data, int width, int height, int stride, int rgb16)
> 
> What about passing the format 4cc instead ?

It's a bit more work since I need to pass the whole format_info
down from fill_tiles(). But I can make a v2 with that change.

> >  {
> >  #ifdef HAVE_CAIRO
> >  	cairo_surface_t *surface;
> > @@ -609,7 +609,7 @@ make_pwetty(void *data, int width, int height, int
> > stride) int x, y;
> > 
> >  	surface = cairo_image_surface_create_for_data(data,
> > -						      CAIRO_FORMAT_ARGB32,
> > +						      rgb16 ? CAIRO_FORMAT_RGB16_565 : 
> CAIRO_FORMAT_ARGB32,
> >  						      width, height,
> >  						      stride);
> >  	cr = cairo_create(surface);
> > @@ -716,6 +716,7 @@ static void
> >  fill_tiles_rgb16(const struct rgb_info *rgb, unsigned char *mem,
> >  		 unsigned int width, unsigned int height, unsigned int stride)
> >  {
> > +	unsigned char *mem_base = mem;
> >  	unsigned int x, y;
> > 
> >  	for (y = 0; y < height; ++y) {
> > @@ -732,6 +733,8 @@ fill_tiles_rgb16(const struct rgb_info *rgb, unsigned
> > char *mem, }
> >  		mem += stride;
> >  	}
> > +
> > +	make_pwetty(mem_base, width, height, stride, 1);
> >  }
> > 
> >  static void
> > @@ -777,7 +780,7 @@ fill_tiles_rgb32(const struct rgb_info *rgb, unsigned
> > char *mem, mem += stride;
> >  	}
> > 
> > -	make_pwetty(mem_base, width, height, stride);
> > +	make_pwetty(mem_base, width, height, stride, 0);
> >  }
> > 
> >  static void
> 
> -- 
> Regards,
> 
> Laurent Pinchart

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too
  2013-04-18 14:06   ` Ville Syrjälä
@ 2013-04-18 14:19     ` Laurent Pinchart
  2013-04-18 14:37       ` Ville Syrjälä
  0 siblings, 1 reply; 13+ messages in thread
From: Laurent Pinchart @ 2013-04-18 14:19 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: dri-devel

On Thursday 18 April 2013 17:06:57 Ville Syrjälä wrote:
> On Thu, Apr 18, 2013 at 03:43:23PM +0200, Laurent Pinchart wrote:
> > On Wednesday 17 April 2013 22:18:01 ville.syrjala@linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > > 
> > >  tests/modetest/buffers.c | 9 ++++++---
> > >  1 file changed, 6 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> > > index 5086381..6b117b4 100644
> > > --- a/tests/modetest/buffers.c
> > > +++ b/tests/modetest/buffers.c
> > > @@ -601,7 +601,7 @@ fill_smpte(const struct format_info *info, void
> > > *planes[3], unsigned int width, #define BLUE  0
> > > 
> > >  static void
> > > 
> > > -make_pwetty(void *data, int width, int height, int stride)
> > > +make_pwetty(void *data, int width, int height, int stride, int rgb16)
> > 
> > What about passing the format 4cc instead ?
> 
> It's a bit more work since I need to pass the whole format_info
> down from fill_tiles(). But I can make a v2 with that change.

It was just an idea to make the code more future-proof, in case we decide to 
make 24-bit formats pwetty at some point. Maybe a bpp value would be a good 
compromise ?


-- 
Regards,

Laurent Pinchart

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too
  2013-04-18 14:19     ` Laurent Pinchart
@ 2013-04-18 14:37       ` Ville Syrjälä
  0 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjälä @ 2013-04-18 14:37 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: dri-devel

On Thu, Apr 18, 2013 at 04:19:30PM +0200, Laurent Pinchart wrote:
> On Thursday 18 April 2013 17:06:57 Ville Syrjälä wrote:
> > On Thu, Apr 18, 2013 at 03:43:23PM +0200, Laurent Pinchart wrote:
> > > On Wednesday 17 April 2013 22:18:01 ville.syrjala@linux.intel.com wrote:
> > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > 
> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > ---
> > > > 
> > > >  tests/modetest/buffers.c | 9 ++++++---
> > > >  1 file changed, 6 insertions(+), 3 deletions(-)
> > > > 
> > > > diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c
> > > > index 5086381..6b117b4 100644
> > > > --- a/tests/modetest/buffers.c
> > > > +++ b/tests/modetest/buffers.c
> > > > @@ -601,7 +601,7 @@ fill_smpte(const struct format_info *info, void
> > > > *planes[3], unsigned int width, #define BLUE  0
> > > > 
> > > >  static void
> > > > 
> > > > -make_pwetty(void *data, int width, int height, int stride)
> > > > +make_pwetty(void *data, int width, int height, int stride, int rgb16)
> > > 
> > > What about passing the format 4cc instead ?
> > 
> > It's a bit more work since I need to pass the whole format_info
> > down from fill_tiles(). But I can make a v2 with that change.
> 
> It was just an idea to make the code more future-proof, in case we decide to 
> make 24-bit formats pwetty at some point. Maybe a bpp value would be a good 
> compromise ?

I already implemented your original idea. Just doing a quick test now.

It's a better idea anyway since we can then check that the color
channels match what we're rendering. My original code just assumed
that it can render RGB565 into an XRGB1555 buffer for example. That
produces some rather ugly results in reality, so it's better to
limit it to the formats where the size/location of RGB channels match.
The order or RGB channels doesn't actually matter since the source
color is always white or black.

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2013-04-18 14:37 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-17 19:18 [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too ville.syrjala
2013-04-17 19:18 ` [PATCH libdrm 2/5] modetest: Fix pitches, somewhat ville.syrjala
2013-04-18 13:45   ` Laurent Pinchart
2013-04-17 19:18 ` [PATCH libdrm 3/5] modetest: Add support for all 16/32 bpp RGB formats ville.syrjala
2013-04-18 13:56   ` Laurent Pinchart
2013-04-17 19:18 ` [PATCH libdrm 4/5] modetest: Print possible_crtcs for planes ville.syrjala
2013-04-18 13:46   ` Laurent Pinchart
2013-04-17 19:18 ` [PATCH libdrm 5/5] modetest: Reduce the length of the connector type string ville.syrjala
2013-04-18 13:46   ` Laurent Pinchart
2013-04-18 13:43 ` [PATCH libdrm 1/5] modetest: Make RGB565 pwetty too Laurent Pinchart
2013-04-18 14:06   ` Ville Syrjälä
2013-04-18 14:19     ` Laurent Pinchart
2013-04-18 14:37       ` Ville Syrjälä

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.