From: Samuel Pitoiset Date: Mon, 4 May 2020 10:01:41 +0000 (+0200) Subject: radv: enable shaderInt16 unconditionally with LLVM and only GFX8+ with ACO X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b0a7499d28dd5a7c89a70cea79cb14d943632609;p=mesa.git 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 Reviewed-by: Daniel Schürmann Part-of: --- diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 49cbee18eff..9810820b252 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -908,7 +908,7 @@ void radv_GetPhysicalDeviceFeatures( .shaderCullDistance = true, .shaderFloat64 = true, .shaderInt64 = true, - .shaderInt16 = pdevice->rad_info.chip_class >= GFX9, + .shaderInt16 = !pdevice->use_aco || pdevice->rad_info.chip_class >= GFX8, .sparseBinding = true, .variableMultisampleRate = true, .inheritedQueries = true,