case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
VkPhysicalDeviceShaderFloat16Int8Features *features =
(VkPhysicalDeviceShaderFloat16Int8Features*)ext;
- features->shaderFloat16 = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco;
+ features->shaderFloat16 = pdevice->rad_info.has_double_rate_fp16 && !pdevice->use_aco;
features->shaderInt8 = !pdevice->use_aco;
break;
}
features->storagePushConstant8 = !pdevice->use_aco;
features->shaderBufferInt64Atomics = LLVM_VERSION_MAJOR >= 9;
features->shaderSharedInt64Atomics = LLVM_VERSION_MAJOR >= 9;
- features->shaderFloat16 = pdevice->rad_info.chip_class >= GFX8 && !pdevice->use_aco;
+ features->shaderFloat16 = pdevice->rad_info.has_double_rate_fp16 && !pdevice->use_aco;
features->shaderInt8 = !pdevice->use_aco;
features->descriptorIndexing = true;
features->shaderInputAttachmentArrayDynamicIndexing = true;
.device_group = true,
.draw_parameters = true,
.float_controls = true,
- .float16 = !device->physical_device->use_aco,
+ .float16 = device->physical_device->rad_info.has_double_rate_fp16 && !device->physical_device->use_aco,
.float64 = true,
.geometry_streams = true,
.image_ms_array = true,