On Wednesday 17 April 2013 22:18:02 ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx> Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel