Re: drm_format_helper_test fails Subtest: drm_test_fb_xrgb8888_to_xrgb2101010 on Big Endian machines (kernel 6.7.5, ppc64)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux