diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 030fba00d11..097f54931b9 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -1106,7 +1106,7 @@ void radv_GetPhysicalDeviceFeatures2( 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; } @@ -1239,7 +1239,7 @@ void radv_GetPhysicalDeviceFeatures2( 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; diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index bb88b368d05..b04da434660 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -350,7 +350,7 @@ radv_shader_compile_to_nir(struct radv_device *device, .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,