* [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
* 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
* [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
* 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
* [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
* 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
* [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 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 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 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.