diff mbox series

[3/3] tests: Add RPF cropping test for YUV formats

Message ID 20220228112901.21289-3-laurent.pinchart@ideasonboard.com (mailing list archive)
State New
Delegated to: Kieran Bingham
Headers show
Series [1/3] tests: Add SPDX headers to vsp-unit-test-0026.sh | expand

Commit Message

Laurent Pinchart Feb. 28, 2022, 11:29 a.m. UTC
YUV formats can be subsampled, which interact with cropping. Add a test
to verify that the VSP driver handles this correctly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 tests/vsp-unit-test-0027.sh | 46 +++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100755 tests/vsp-unit-test-0027.sh

Comments

Kieran Bingham Feb. 28, 2022, 12:29 p.m. UTC | #1
Quoting Laurent Pinchart (2022-02-28 11:29:01)
> YUV formats can be subsampled, which interact with cropping. Add a test
> to verify that the VSP driver handles this correctly.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  tests/vsp-unit-test-0027.sh | 46 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
>  create mode 100755 tests/vsp-unit-test-0027.sh
> 
> diff --git a/tests/vsp-unit-test-0027.sh b/tests/vsp-unit-test-0027.sh
> new file mode 100755
> index 000000000000..8be8ae736375
> --- /dev/null
> +++ b/tests/vsp-unit-test-0027.sh
> @@ -0,0 +1,46 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# SPDX-FileCopyrightText: 2017-2022 Renesas Electronics Corporation
> +
> +#
> +# Test RPF crop using multiplanar YUV formats, test buffer offset calculation
> +# with subsampling. Use a RPF -> WPF pipeline, passing a selection of cropping
> +# windows.
> +#
> +
> +. ./vsp-lib.sh
> +
> +features="rpf.0 wpf.0"
> +crops="(0,0)/512x384 (32,32)/512x384 (32,64)/512x384 (64,32)/512x384"

I was expecting to see more strenuous variations here. Are the crops
limited for now ? Does this already highlight any failures in the
driver? or do these pass?

Anyway, Extending the tests is beneficial, even if this can be further
extended.


Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>

> +formats="NV12M NV16M YUV420M YUV422M YUV444M"
> +
> +test_rpf_cropping() {
> +       local format=$1
> +       local crop=$2
> +
> +       test_start "RPF crop from $crop in $format"
> +
> +       pipe_configure rpf-wpf 0 0
> +       format_configure rpf-wpf 0 0 $format 1024x768 YUV444M --rpfcrop=$crop
> +
> +       vsp_runner rpf.0 &
> +       vsp_runner wpf.0
> +
> +       local result=$(compare_frames crop=${crop})
> +
> +       test_complete $result
> +}
> +
> +test_main() {
> +       local crop
> +       local format
> +
> +       for format in $formats ; do
> +               for crop in $crops ; do
> +                       test_rpf_cropping $format $crop
> +               done
> +       done
> +}
> +
> +test_init $0 "$features"
> +test_run
> -- 
> Regards,
> 
> Laurent Pinchart
>
Laurent Pinchart Feb. 28, 2022, 12:37 p.m. UTC | #2
Hi Kieran,

On Mon, Feb 28, 2022 at 12:29:14PM +0000, Kieran Bingham wrote:
> Quoting Laurent Pinchart (2022-02-28 11:29:01)
> > YUV formats can be subsampled, which interact with cropping. Add a test
> > to verify that the VSP driver handles this correctly.
> > 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> >  tests/vsp-unit-test-0027.sh | 46 +++++++++++++++++++++++++++++++++++++
> >  1 file changed, 46 insertions(+)
> >  create mode 100755 tests/vsp-unit-test-0027.sh
> > 
> > diff --git a/tests/vsp-unit-test-0027.sh b/tests/vsp-unit-test-0027.sh
> > new file mode 100755
> > index 000000000000..8be8ae736375
> > --- /dev/null
> > +++ b/tests/vsp-unit-test-0027.sh
> > @@ -0,0 +1,46 @@
> > +#!/bin/sh
> > +# SPDX-License-Identifier: GPL-2.0-or-later
> > +# SPDX-FileCopyrightText: 2017-2022 Renesas Electronics Corporation
> > +
> > +#
> > +# Test RPF crop using multiplanar YUV formats, test buffer offset calculation
> > +# with subsampling. Use a RPF -> WPF pipeline, passing a selection of cropping
> > +# windows.
> > +#
> > +
> > +. ./vsp-lib.sh
> > +
> > +features="rpf.0 wpf.0"
> > +crops="(0,0)/512x384 (32,32)/512x384 (32,64)/512x384 (64,32)/512x384"
> 
> I was expecting to see more strenuous variations here. Are the crops
> limited for now ?

I've copied these values from the RGB crop tests. We can add more crop
rectangles if there are specific items that need to be tested.

> Does this already highlight any failures in the
> driver? or do these pass?

The test fails, the fix is available at
https://lore.kernel.org/linux-media/20220228120058.9755-1-laurent.pinchart+renesas@ideasonboard.com/T/#u

> Anyway, Extending the tests is beneficial, even if this can be further
> extended.
> 
> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> 
> > +formats="NV12M NV16M YUV420M YUV422M YUV444M"
> > +
> > +test_rpf_cropping() {
> > +       local format=$1
> > +       local crop=$2
> > +
> > +       test_start "RPF crop from $crop in $format"
> > +
> > +       pipe_configure rpf-wpf 0 0
> > +       format_configure rpf-wpf 0 0 $format 1024x768 YUV444M --rpfcrop=$crop
> > +
> > +       vsp_runner rpf.0 &
> > +       vsp_runner wpf.0
> > +
> > +       local result=$(compare_frames crop=${crop})
> > +
> > +       test_complete $result
> > +}
> > +
> > +test_main() {
> > +       local crop
> > +       local format
> > +
> > +       for format in $formats ; do
> > +               for crop in $crops ; do
> > +                       test_rpf_cropping $format $crop
> > +               done
> > +       done
> > +}
> > +
> > +test_init $0 "$features"
> > +test_run
diff mbox series

Patch

diff --git a/tests/vsp-unit-test-0027.sh b/tests/vsp-unit-test-0027.sh
new file mode 100755
index 000000000000..8be8ae736375
--- /dev/null
+++ b/tests/vsp-unit-test-0027.sh
@@ -0,0 +1,46 @@ 
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# SPDX-FileCopyrightText: 2017-2022 Renesas Electronics Corporation
+
+#
+# Test RPF crop using multiplanar YUV formats, test buffer offset calculation
+# with subsampling. Use a RPF -> WPF pipeline, passing a selection of cropping
+# windows.
+#
+
+. ./vsp-lib.sh
+
+features="rpf.0 wpf.0"
+crops="(0,0)/512x384 (32,32)/512x384 (32,64)/512x384 (64,32)/512x384"
+formats="NV12M NV16M YUV420M YUV422M YUV444M"
+
+test_rpf_cropping() {
+	local format=$1
+	local crop=$2
+
+	test_start "RPF crop from $crop in $format"
+
+	pipe_configure rpf-wpf 0 0
+	format_configure rpf-wpf 0 0 $format 1024x768 YUV444M --rpfcrop=$crop
+
+	vsp_runner rpf.0 &
+	vsp_runner wpf.0
+
+	local result=$(compare_frames crop=${crop})
+
+	test_complete $result
+}
+
+test_main() {
+	local crop
+	local format
+
+	for format in $formats ; do
+		for crop in $crops ; do
+			test_rpf_cropping $format $crop
+		done
+	done
+}
+
+test_init $0 "$features"
+test_run