From be628e47494fb19db593a2006feb1c3688014d92 Mon Sep 17 00:00:00 2001 From: Bas Vermeulen Date: Mon, 9 Apr 2018 13:06:00 +0200 Subject: [PATCH] radeonsi: correct si_vgt_param_key on big endian machines MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Using mesa OpenCL failed on a big endian PowerPC machine because si_vgt_param_key is using bitfields and a 32 bit int for an index into an array. Fix si_vgt_param_key to work correctly on both little endian and big endian machines. Signed-off-by: Bas Vermeulen Signed-off-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_pipe.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 9fb18a84d31..e3e5d5ac91b 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -464,6 +464,7 @@ struct si_shader_ctx_state { */ union si_vgt_param_key { struct { +#ifdef PIPE_ARCH_LITTLE_ENDIAN unsigned prim:4; unsigned uses_instancing:1; unsigned multi_instances_smaller_than_primgroup:1; @@ -474,6 +475,18 @@ union si_vgt_param_key { unsigned tess_uses_prim_id:1; unsigned uses_gs:1; unsigned _pad:32 - SI_NUM_VGT_PARAM_KEY_BITS; +#else /* PIPE_ARCH_BIG_ENDIAN */ + unsigned _pad:32 - SI_NUM_VGT_PARAM_KEY_BITS; + unsigned uses_gs:1; + unsigned tess_uses_prim_id:1; + unsigned uses_tess:1; + unsigned line_stipple_enabled:1; + unsigned count_from_stream_output:1; + unsigned primitive_restart:1; + unsigned multi_instances_smaller_than_primgroup:1; + unsigned uses_instancing:1; + unsigned prim:4; +#endif } u; uint32_t index; }; -- 2.30.2