diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index ad7cd9a5a27..51a84bb2791 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -1458,6 +1458,7 @@ radv_get_compiler_string(struct radv_physical_device *pdev) static void radv_get_physical_device_properties(struct radv_physical_device *pdev) { + const struct radv_instance *instance = radv_physical_device_instance(pdev); VkSampleCountFlags sample_counts = 0xf; size_t max_descriptor_set_size = radv_max_descriptor_set_size(); @@ -1469,7 +1470,8 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) device_type = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU; } - bool has_fp16 = pdev->info.has_packed_math_16bit; + bool has_fp16 = pdev->info.has_packed_math_16bit || + (pdev->info.gfx_level == GFX8 && instance->drirc.features.expose_float16_gfx8); VkShaderStageFlags taskmesh_stages = radv_taskmesh_enabled(pdev) ? VK_SHADER_STAGE_MESH_BIT_EXT | VK_SHADER_STAGE_TASK_BIT_EXT : 0;