diff --git a/docs/features.txt b/docs/features.txt index 5d388e564d3..ae3d8967a28 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -734,6 +734,7 @@ Khronos extensions that are not part of any Vulkan version: VK_QCOM_multiview_per_view_viewports DONE (tu) VK_QCOM_render_pass_shader_resolve DONE (tu) VK_VALVE_video_encode_rgb_conversion DONE (radv) + VK_VALVE_shader_mixed_float_dot_product DONE (radv/{vega20,navi14,gfx10.3+}) Rusticl OpenCL 1.0 -- all DONE: Image support DONE diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 07703cc712e..c5db62dde79 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -18,3 +18,4 @@ VK_KHR_copy_memory_indirect on nvk VK_EXT_color_write_enable on panvk VK_EXT_image_view_min_lod on panvk VK_EXT_depth_clamp_control on panvk +VK_VALVE_shader_mixed_float_dot_product on RADV (Vega20, Navi14, RDNA2+) diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index c0425d9cc22..1a8d5c5dab9 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -882,6 +882,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .NV_compute_shader_derivatives = true, .NV_cooperative_matrix2 = radv_cooperative_matrix2_nv_enabled(pdev), .VALVE_mutable_descriptor_type = true, + .VALVE_shader_mixed_float_dot_product = pdev->info.cu_info.has_accelerated_dot_product, .VALVE_video_encode_rgb_conversion = pdev->video_encode_enabled && pdev->info.vcn_ip_version >= VCN_2_0_0 && pdev->info.vcn_ip_version != VCN_2_2_0, }; @@ -1518,6 +1519,12 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc /* VK_KHR_internally_synchronized_queues */ .internallySynchronizedQueues = true, + + /* VK_VALVE_shader_mixed_float_dot_product */ + .shaderMixedFloatDotProductFloat16AccFloat32 = true, + .shaderMixedFloatDotProductFloat16AccFloat16 = pdev->info.gfx_level >= GFX11, + .shaderMixedFloatDotProductBFloat16Acc = radv_bfloat16_enabled(pdev), + .shaderMixedFloatDotProductFloat8AccFloat32 = pdev->info.gfx_level >= GFX12, }; }