[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9344c3bb-08b4-4816-8c0f-14934ffd2f1a@csgroup.eu>
Date: Fri, 23 Feb 2024 06:12:59 +0000
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Erhard Furtner <erhard_f@...lbox.org>, "dri-devel@...ts.freedesktop.org"
<dri-devel@...ts.freedesktop.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: drm_format_helper_test fails Subtest:
drm_test_fb_xrgb8888_to_xrgb2101010 on Big Endian machines (kernel 6.7.5,
ppc64)
Hi,
Le 20/02/2024 à 00:45, Erhard Furtner a écrit :
> Greetings!
>
> I ran some kernel drm/ttm unit tests to check for quirks in the drm/ttm subsystem. One thing I found out that the drm_format_helper_test fails Subtest: drm_test_fb_xrgb8888_to_xrgb2101010 on my Talos II (ppc64) which I run in BigEndian mode:
>
> [...]
> KTAP version 1
> # Subtest: drm_test_fb_xrgb8888_to_xrgb2101010
> # drm_test_fb_xrgb8888_to_xrgb2101010: EXPECTATION FAILED at drivers/gpu/drm/tests/drm_format_helper_test.c:995
> Expected buf == result->expected, but
> buf ==
> <00><00><f0><3f>
> result->expected ==
> <3f><f0><00><00>
> not ok 1 single_pixel_source_buffer
> # drm_test_fb_xrgb8888_to_xrgb2101010: EXPECTATION FAILED at drivers/gpu/drm/tests/drm_format_helper_test.c:995
> Expected buf == result->expected, but
> buf ==
> <00><00><f0><3f>
> result->expected ==
> <3f><f0><00><00>
> not ok 2 single_pixel_clip_rectangle
> # drm_test_fb_xrgb8888_to_xrgb2101010: EXPECTATION FAILED at drivers/gpu/drm/tests/drm_format_helper_test.c:995
> Expected buf == result->expected, but
> buf ==
> <ff> ff ff <3f> 00 00 00 00 <00><00><f0><3f> 00 <fc><0f> 00
> <ff><03><00><00><ff><03><f0><3f><00><fc><ff><3f><ff><ff><0f><00>
> result->expected ==
> <3f> ff ff <ff> 00 00 00 00 <3f><f0><00><00> 00 <0f><fc> 00
> <00><00><03><ff><3f><f0><03><ff><3f><ff><fc><00><00><0f><ff><ff>
> not ok 3 well_known_colors
> # drm_test_fb_xrgb8888_to_xrgb2101010: EXPECTATION FAILED at drivers/gpu/drm/tests/drm_format_helper_test.c:995
> Expected buf == result->expected, but
> buf ==
> <72><46><84><03><14><d4><44><04><0c><3c><2f><2a> 00 00 00 00
> 00 00 00 00 <cd><0d><1f><1b><72><46><84><03><14><d4><44><04>
> 00 00 00 00 00 00 00 00 <0c><30><20><2a><cd><0d><1f><1b>
> <72><46><84><03> 00 00 00 00 00 00 00 00
> result->expected ==
> <03><84><46><72><04><44><d4><14><2a><2f><3c><0c> 00 00 00 00
> 00 00 00 00 <1b><1f><0d><cd><03><84><46><72><04><44><d4><14>
> 00 00 00 00 00 00 00 00 <2a><20><30><0c><1b><1f><0d><cd>
> <03><84><46><72> 00 00 00 00 00 00 00 00
> not ok 4 destination_pitch
> # drm_test_fb_xrgb8888_to_xrgb2101010: pass:0 fail:4 skip:0 total:4
> not ok 9 drm_test_fb_xrgb8888_to_xrgb2101010
> [...]
>
> Looking at these results I suspect this to be an endian issue, probably affecting other BE arches too.
>
> Full dmesg + kernel .config attached.
Doing a build with C=2 I get the following warning. Fix this warning and
it should work on all endiannesses:
CC drivers/gpu/drm/tests/drm_format_helper_test.o
CHECK drivers/gpu/drm/tests/drm_format_helper_test.c
drivers/gpu/drm/tests/drm_format_helper_test.c:994:36: warning:
incorrect type in argument 2 (different base types)
drivers/gpu/drm/tests/drm_format_helper_test.c:994:36: expected
restricted __le32 const [usertype] *buf
drivers/gpu/drm/tests/drm_format_helper_test.c:994:36: got unsigned
int [usertype] *[assigned] buf
Christophe
Powered by blists - more mailing lists