Mesa (main): v3dv: support VK_KHR_16_bit_storage

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jan 25 09:38:46 UTC 2022


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Tue Jan 18 11:17:29 2022 +0100

v3dv: support VK_KHR_16_bit_storage

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14648>

---

 docs/features.txt                   | 2 +-
 src/broadcom/vulkan/v3dv_device.c   | 5 +++--
 src/broadcom/vulkan/v3dv_pipeline.c | 1 +
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/docs/features.txt b/docs/features.txt
index c5987895f16..b0104467874 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -419,7 +419,7 @@ Vulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn
 
 Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
 
-  VK_KHR_16bit_storage                                  DONE (anv/gen8+, lvp, radv, tu/a650, vn)
+  VK_KHR_16bit_storage                                  DONE (anv/gen8+, lvp, radv, tu/a650, v3dv, vn)
   VK_KHR_bind_memory2                                   DONE (anv, lvp, radv, tu, v3dv, vn)
   VK_KHR_dedicated_allocation                           DONE (anv, lvp, radv, tu, v3dv, vn)
   VK_KHR_descriptor_update_template                     DONE (anv, lvp, radv, tu, v3dv, vn)
diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c
index 3b6a7aadcaf..d71d354ae52 100644
--- a/src/broadcom/vulkan/v3dv_device.c
+++ b/src/broadcom/vulkan/v3dv_device.c
@@ -116,6 +116,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
                       struct vk_device_extension_table *ext)
 {
    *ext = (struct vk_device_extension_table) {
+      .KHR_16bit_storage                   = true,
       .KHR_bind_memory2                    = true,
       .KHR_copy_commands2                  = true,
       .KHR_create_renderpass2              = true,
@@ -1082,8 +1083,8 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
    v3dv_GetPhysicalDeviceFeatures(physicalDevice, &pFeatures->features);
 
    VkPhysicalDeviceVulkan11Features vk11 = {
-      .storageBuffer16BitAccess = false,
-      .uniformAndStorageBuffer16BitAccess = false,
+      .storageBuffer16BitAccess = true,
+      .uniformAndStorageBuffer16BitAccess = true,
       .storagePushConstant16 = false,
       .storageInputOutput16 = false,
       .multiview = true,
diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c
index 10694cc180d..f39d0464328 100644
--- a/src/broadcom/vulkan/v3dv_pipeline.c
+++ b/src/broadcom/vulkan/v3dv_pipeline.c
@@ -180,6 +180,7 @@ static const struct spirv_to_nir_options default_spirv_options =  {
    .caps = {
       .device_group = true,
       .multiview = true,
+      .storage_16bit = true,
       .subgroup_basic = true,
       .variable_pointers = true,
     },



More information about the mesa-commit mailing list