Module: Mesa
Branch: main
Commit: 03ae2611838bf86c3c589980645b2c5880a3751c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=03ae2611838bf86c3c589980645b2c5880a3751c

Author: Faith Ekstrand <[email protected]>
Date:   Tue Dec  5 15:14:54 2023 -0600

nvk: Advertise KHR_shader_integer_dot_product

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26533>

---

 docs/features.txt                        | 2 +-
 src/nouveau/vulkan/nvk_physical_device.c | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/docs/features.txt b/docs/features.txt
index 3b6055c2112..f73fda1c4e5 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -479,7 +479,7 @@ Vulkan 1.3 -- all DONE: anv, radv, tu, lvp, vn
   VK_KHR_dynamic_rendering                              DONE (anv, dzn, hasvk, 
lvp, nvk, radv, tu, vn)
   VK_KHR_format_feature_flags2                          DONE (anv, hasvk, lvp, 
nvk, pvr, radv, tu, v3dv, vn)
   VK_KHR_maintenance4                                   DONE (anv, hasvk, lvp, 
nvk, radv, tu, v3dv, vn)
-  VK_KHR_shader_integer_dot_product                     DONE (anv, dzn, hasvk, 
lvp, radv, tu, v3dv, vn)
+  VK_KHR_shader_integer_dot_product                     DONE (anv, dzn, hasvk, 
lvp, nvk, radv, tu, v3dv, vn)
   VK_KHR_shader_non_semantic_info                       DONE (anv, hasvk, nvk, 
radv, tu, v3dv, vn)
   VK_KHR_shader_terminate_invocation                    DONE (anv, hasvk, lvp, 
nvk, radv, tu, vn)
   VK_KHR_synchronization2                               DONE (anv, dzn, hasvk, 
lvp, nvk, panvk, radv, tu, v3dv, vn)
diff --git a/src/nouveau/vulkan/nvk_physical_device.c 
b/src/nouveau/vulkan/nvk_physical_device.c
index 99239c39809..c407725c835 100644
--- a/src/nouveau/vulkan/nvk_physical_device.c
+++ b/src/nouveau/vulkan/nvk_physical_device.c
@@ -117,6 +117,7 @@ nvk_get_device_extensions(const struct nv_device_info *info,
       .KHR_shader_clock = true,
       .KHR_shader_draw_parameters = true,
       .KHR_shader_float16_int8 = true,
+      .KHR_shader_integer_dot_product = true,
       .KHR_shader_non_semantic_info = true,
       .KHR_shader_subgroup_extended_types = true,
       .KHR_shader_terminate_invocation =
@@ -312,6 +313,7 @@ nvk_get_device_features(const struct nv_device_info *info,
       .computeFullSubgroups = true,
       .synchronization2 = true,
       .dynamicRendering = true,
+      .shaderIntegerDotProduct = true,
       .maintenance4 = true,
 
       /* VK_KHR_fragment_shader_barycentric */
@@ -689,6 +691,12 @@ nvk_get_device_properties(const struct nvk_instance 
*instance,
       .maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32,
       .maxDescriptorSetInlineUniformBlocks = 6 * 32,
       .maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 6 * 32,
+      .integerDotProduct4x8BitPackedUnsignedAccelerated
+         = info->cls_eng3d >= VOLTA_A,
+      .integerDotProduct4x8BitPackedSignedAccelerated
+         = info->cls_eng3d >= VOLTA_A,
+      .integerDotProduct4x8BitPackedMixedSignednessAccelerated
+         = info->cls_eng3d >= VOLTA_A,
       .storageTexelBufferOffsetAlignmentBytes = 16,
       .storageTexelBufferOffsetSingleTexelAlignment = true,
       .uniformTexelBufferOffsetAlignmentBytes = 16,

Reply via email to