From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH libdrm 2/5] modetest: Fix pitches, somewhat Date: Thu, 18 Apr 2013 15:45:29 +0200 Message-ID: <10216951.c4KTvrsAZh@avalon> References: <1366226285-13282-1-git-send-email-ville.syrjala@linux.intel.com> <1366226285-13282-2-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [95.142.166.194]) by gabe.freedesktop.org (Postfix) with ESMTP id 93EB3E62ED for ; Thu, 18 Apr 2013 06:45:24 -0700 (PDT) In-Reply-To: <1366226285-13282-2-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Wednesday 17 April 2013 22:18:02 ville.syrjala@linux.intel.com wrote: > From: Ville Syrj=E4l=E4 > = > 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=E4l=E4 Acked-by: Laurent Pinchart > --- > 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 i= nt > format, case DRM_FORMAT_VYUY: > case DRM_FORMAT_YUYV: > case DRM_FORMAT_YVYU: > - pitches[0] =3D width * 2; > offsets[0] =3D 0; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > + kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); > = > planes[0] =3D 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] =3D width; > offsets[0] =3D 0; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > - pitches[1] =3D width; > - offsets[1] =3D width * height; > + kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); > + pitches[1] =3D pitches[0]; > + offsets[1] =3D pitches[0] * height; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]); > = > planes[0] =3D virtual; > @@ -971,14 +971,14 @@ create_test_buffer(struct kms_driver *kms, unsigned > int format, break; > = > case DRM_FORMAT_YVU420: > - pitches[0] =3D width; > offsets[0] =3D 0; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > - pitches[1] =3D width / 2; > - offsets[1] =3D width * height; > + kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); > + pitches[1] =3D pitches[0] / 2; > + offsets[1] =3D pitches[0] * height; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[1]); > - pitches[2] =3D width / 2; > - offsets[2] =3D offsets[1] + (width * height) / 4; > + pitches[2] =3D pitches[1]; > + offsets[2] =3D offsets[1] + pitches[1] * height / 2; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[2]); > = > planes[0] =3D 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] =3D width * 2; > - offsets[0] =3D 0; > - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > - > - planes[0] =3D virtual; > - break; > - > case DRM_FORMAT_BGR888: > case DRM_FORMAT_RGB888: > - pitches[0] =3D width * 3; > - offsets[0] =3D 0; > - kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > - > - planes[0] =3D virtual; > - break; > - > case DRM_FORMAT_ARGB8888: > case DRM_FORMAT_BGRA8888: > case DRM_FORMAT_XRGB8888: > case DRM_FORMAT_BGRX8888: > - pitches[0] =3D width * 4; > offsets[0] =3D 0; > kms_bo_get_prop(bo, KMS_HANDLE, &handles[0]); > + kms_bo_get_prop(bo, KMS_PITCH, &pitches[0]); > = > planes[0] =3D virtual; > break; -- = Regards, Laurent Pinchart