https://bugs.freedesktop.org/show_bug.cgi?id=105950
Bug ID: 105950 Summary: radeonsi: OpenCL not working correctly on a big endian machine Product: Mesa Version: 17.3 Hardware: PowerPC OS: Linux (All) Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/radeonsi Assignee: dri-devel@lists.freedesktop.org Reporter: bas@daedalean.ai QA Contact: dri-devel@lists.freedesktop.org
Running any OpenCL program on a big endian machine using a radeonsi card fails.
- union si_vgt_param_key uses a bitfield shared with a 32 bit value. This causes the index to be wrong on a big endian machine, and crashes any OpenCL program with a segfault. - si_setup_user_sgprs_co_v2 in si_compute.c fills a dispatch_packet struct with values which are uploaded to the GPU. To ensure this works correctly, these values need to be converted to little endian.
I'll send patches to the mesa-dev list for both these issues.
Bas Vermeulen