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:
offsets[0] = 0; kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);pitches[0] = width * 2;
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:
offsets[0] = 0; kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);pitches[0] = width;
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:
offsets[0] = 0; kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);pitches[0] = width;
pitches[1] = width / 2;
offsets[1] = width * height;
kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
pitches[1] = pitches[0] / 2;
kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]);offsets[1] = pitches[0] * height;
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:
offsets[0] = 0; kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]);pitches[0] = width * 4;
kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]);
planes[0] = virtual; break;