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
https://bugs.freedesktop.org/show_bug.cgi?id=105950
--- Comment #1 from Bas Vermeulen bas@daedalean.ai --- Created attachment 138697 --> https://bugs.freedesktop.org/attachment.cgi?id=138697&action=edit Patch for si_vgt_param_key endian fix
https://bugs.freedesktop.org/show_bug.cgi?id=105950
--- Comment #2 from Bas Vermeulen bas@daedalean.ai --- Created attachment 138698 --> https://bugs.freedesktop.org/attachment.cgi?id=138698&action=edit Patch for dispatch_packet endianness fix
https://bugs.freedesktop.org/show_bug.cgi?id=105950
Timothy Arceri t_arceri@yahoo.com.au changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #3 from Timothy Arceri t_arceri@yahoo.com.au --- These patches were committed. Closing as fixed.
dri-devel@lists.freedesktop.org