enable storageBuffer16BitAccess feature in radv for SI and CIK
Submitted by nihui
Assigned to mes..@..op.org
Link to original bug (#110268)
Description
the VK_KHR_16bit_storage extension is enabled but all features are reported as FALSE for SI and CIK.
I found those features are only enabled with VI+ in mesa/src/amd/vulkan/radv_device.c
as contrast, the amdvlk driver support them.
16bit storage support is important for reducing shader bandwidth and gaining speed boost. (found 20%~50% speedup with the ncnn vulkan nerual network benchmark)
please consider implementing storageBuffer16BitAccess feature for SI and CIK.
Thanks!
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
VkPhysicalDevice16BitStorageFeatures *features =
(VkPhysicalDevice16BitStorageFeatures*)ext;
bool enabled = pdevice->rad_info.chip_class >= VI;
features->storageBuffer16BitAccess = enabled;
features->uniformAndStorageBuffer16BitAccess = enabled;
features->storagePushConstant16 = enabled;
features->storageInputOutput16 = enabled && HAVE_LLVM >= 0x900;
break;
}