radv: use a faster version for nir_op_pack_half_2x16
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 5 Dec 2017 17:02:08 +0000 (18:02 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Thu, 7 Dec 2017 16:21:50 +0000 (17:21 +0100)
commit5f81a43535e8512cef26ea3dcd1e3a489bd5a1bb
tree9b411d003145c3d158c2f73bb9b8a9a43c21b27b
parent25e56b2ebafe2bcebb23819cc355e1b079a839d6
radv: use a faster version for nir_op_pack_half_2x16

This patch is ported from RadeonSI and it has two effects.

It fixes a rendering issue which affects F1 2017 and Dawn
of War 3 (Vega only) because LLVM was ending up by generating
the new v_mad_mix_{hi,lo} instructions which appear to be
buggy in some way. Not sure if Mesa is generating something
wrong or if the issue is in LLVM only. Anyway, that explains why
the DOW3 issue can't be reproduced with GL on Vega.

It also improves performance because v_cvt_pkrtz_f16 is faster,
and because I guess the rounding mode behaviour is similar between
GL and VK, we can use it. About performance, it improves Talos
by +3/4% but I don't see any other impacts.

No CTS regressions on Polaris.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_nir_to_llvm.c