From 3ebe2b61e8ebf0b6042a386699df0467e18718db Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 14 Oct 2024 10:50:32 -0500 Subject: [PATCH] nvk: Advertise VK_NV_shader_atomic_float16_vector Reviewed-by: Mel Henning Part-of: --- docs/features.txt | 1 + docs/relnotes/new_features.txt | 1 + src/nouveau/vulkan/nvk_format.c | 3 +++ src/nouveau/vulkan/nvk_physical_device.c | 4 ++++ 4 files changed, 9 insertions(+) diff --git a/docs/features.txt b/docs/features.txt index 1350e715293..a22962b1e5f 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -737,6 +737,7 @@ Khronos extensions that are not part of any Vulkan version: VK_INTEL_shader_integer_functions2 DONE (anv, hasvk, radv) VK_MESA_image_alignment_control DONE (anv, nvk, radv) VK_NV_compute_shader_derivatives DONE (anv, hasvk, nvk, radv, tu, vn) + VK_NV_shader_atomic_float16_vector DONE (nvk) VK_NVX_image_view_handle DONE (nvk) VK_QCOM_fragment_density_map_offset DONE (tu) VK_QCOM_image_processing DONE (tu) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 9fdbbf4651a..f36103b2661 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -26,3 +26,4 @@ VK_KHR_device_fault on RADV VK_GOOGLE_display_timing for KHR_display on anv, panvk, pvr, radv, tu, v3dv VK_KHR_shader_abort on RADV VK_KHR_shader_fma on panvk +VK_NV_shader_atomic_float16_vector on NVK diff --git a/src/nouveau/vulkan/nvk_format.c b/src/nouveau/vulkan/nvk_format.c index 42696d467f9..6363906b794 100644 --- a/src/nouveau/vulkan/nvk_format.c +++ b/src/nouveau/vulkan/nvk_format.c @@ -29,6 +29,9 @@ nvk_format_supports_atomics(const struct nvk_physical_device *pdev, case PIPE_FORMAT_R64_UINT: case PIPE_FORMAT_R64_SINT: return pdev->vk.supported_features.shaderImageInt64Atomics; + case PIPE_FORMAT_R16G16_FLOAT: + case PIPE_FORMAT_R16G16B16A16_FLOAT: + return pdev->vk.supported_features.shaderFloat16VectorAtomics; default: return false; } diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index e26b9a2d16a..72c38f27719 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -314,6 +314,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance, .GOOGLE_user_type = true, .MESA_image_alignment_control = true, .NV_compute_shader_derivatives = info->cls_eng3d >= TURING_A, + .NV_shader_atomic_float16_vector = info->cls_eng3d >= TURING_A, .NV_shader_sm_builtins = true, .NVX_image_view_handle = info->cls_eng3d >= MAXWELL_A, /* needs true bindless descriptors */ .VALVE_mutable_descriptor_type = true, @@ -785,6 +786,9 @@ nvk_get_device_features(const struct nv_device_info *info, /* VK_MESA_image_alignment_control */ .imageAlignmentControl = true, + /* VK_NV_shader_atomic_float16_vector */ + .shaderFloat16VectorAtomics = info->cls_eng3d >= TURING_A, + /* VK_NV_shader_sm_builtins */ .shaderSMBuiltins = true,