radv: enable shaderInt16 unconditionally with LLVM and only GFX8+ with ACO
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 4 May 2020 10:01:41 +0000 (12:01 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 5 May 2020 10:04:36 +0000 (10:04 +0000)
commitb0a7499d28dd5a7c89a70cea79cb14d943632609
treed4e6cffb0a37d3709dfe8952b03ffa9804cc4b15
parent64662dd5baeec19a618156b52df7a7e7adba94cf
radv: enable shaderInt16 unconditionally with LLVM and only GFX8+ with ACO

The Vulkan spec says:

"shaderInt16 specifies whether 16-bit integers (signed and unsigned)
are supported in shader code. If this feature is not enabled, 16-bit
integer types must not be used in shader code."

I think it's just safe to enable it because 16-bit integers should
be fully supported with LLVM and also with ACO and GFX8+. On GFX8
and earlier generations, throughput of 16-bit int is same as 32-bit
but that should't change anything.

For GFX6-GFX7 ACO support, we have to implement conversions without
SDWA.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4874>
src/amd/vulkan/radv_device.c