Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
RADV Driver Gets Big Patch Series For 8-bit & 16-bit Arithmetic, 8-bit Storage
Rhys Perry who started contributing to the Nouveau driver stack has been working on this 8-bit and 16-bit arithmetic support for the Radeon Vulkan "RADV" driver. These 8-bit / 16-bit extensions work for AMD Volcanic Islands GPUs and newer. However, the half-floats support needs LLVM 8.0 or newer due to bugs on LLVM 7.
VK_KHR_shader_float16_int8 allows for using 16-bit floating-point types and 8-bit integer types in shader arithmetic operations. VK_AMD_gpu_shader_half_float adds support for the SPV_AMD_gpu_shader_half_float type into Vulkan, which is 16-bit floating point support. VK_AMD_gpu_shader_int16 is about adding the SPIR-V 16-bit signed/unsigned integer support. Lastly, VK_KHR_8bit_storage allows for 8-bit types in uniform and storage buffers and push constant blocks.
As part of these patches is also using LLVM's SLP "Superworld-Level Parallelism" vectorizer by RADV.
These new patches can be found on Mesa-dev but will hopefully be merged soon into Mesa 19.1. Great seeing these few remaining unimplemented Vulkan extensions being worked on by this Mesa Radeon Vulkan driver while the official AMDVLK Vulkan driver has already supported these 8-bit/16-bit capabilities.