Mesa (main): tu: Enable VK_KHR_uniform_buffer_standard_layout

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 23 18:50:49 UTC 2021


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Aug 20 18:48:45 2021 -0700

tu: Enable VK_KHR_uniform_buffer_standard_layout

This extension relaxes the alignment requirements to allow the GL std430
layout to be used. freedreno/ir3 already supports this (via
PIPE_CAP_LOAD_CONSTBUF).

Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12495>

---

 docs/features.txt                | 2 +-
 src/freedreno/vulkan/tu_device.c | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/docs/features.txt b/docs/features.txt
index dc4c330c6be..9b267001380 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -461,7 +461,7 @@ Vulkan 1.2 -- all DONE: anv, vn
   VK_KHR_shader_subgroup_extended_types                 DONE (anv/gen8+, radv, vn)
   VK_KHR_spirv_1_4                                      DONE (anv, radv, tu, vn)
   VK_KHR_timeline_semaphore                             DONE (anv, lvp, radv, tu, vn)
-  VK_KHR_uniform_buffer_standard_layout                 DONE (anv, lvp, radv, v3dv, vn)
+  VK_KHR_uniform_buffer_standard_layout                 DONE (anv, lvp, radv, tu, v3dv, vn)
   VK_KHR_vulkan_memory_model                            DONE (anv, radv, tu, vn)
   VK_EXT_descriptor_indexing                            DONE (anv/gen9+, radv, tu, vn)
   VK_EXT_host_query_reset                               DONE (anv, lvp, radv, tu, vn)
diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c
index 9b136c75719..985447f3351 100644
--- a/src/freedreno/vulkan/tu_device.c
+++ b/src/freedreno/vulkan/tu_device.c
@@ -147,6 +147,7 @@ get_device_extensions(const struct tu_physical_device *device,
       .KHR_spirv_1_4 = true,
       .KHR_storage_buffer_storage_class = true,
       .KHR_swapchain = TU_HAS_SURFACE,
+      .KHR_uniform_buffer_standard_layout = true,
       .KHR_variable_pointers = true,
       .KHR_vulkan_memory_model = true,
 #ifndef TU_USE_KGSL
@@ -643,6 +644,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
          features->vertexAttributeInstanceRateZeroDivisor = true;
          break;
       }
+      case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: {
+         VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR *features =
+            (VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR *)ext;
+         features->uniformBufferStandardLayout = true;
+         break;
+      }
       case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: {
          VkPhysicalDevicePrivateDataFeaturesEXT *features =
             (VkPhysicalDevicePrivateDataFeaturesEXT *)ext;



More information about the mesa-commit mailing list